Hey Guys,How do I change this code to set title item to equal the headline item from 1st input no matter how many times headline item changes on a form.function setHeadline(){ var headlineItem = IWDatacapture.getItem("/Headline"); var headline = headlineItem.getValue(); if (headline != null) { var metadataItem = IWDatacapture.getItem("/Metadata/title"); metadataItem.setValue(headline); IWDatacapture.redraw(); }}Thanks
Fish thats exactly what I want, but can you help me out with the code. I have tried changing around the code to get it working but I got it to this point. Thanks
Tried setReadOnly(True) as per formAPI but title still changes, can you tell me what am I missing or not doing.
Still didn't work. Here is the code from javascript file linking to datacapture.cfg file. This is 1st version. Tried other things like while and for loops, break command out of loop still didn't work. So It put it back to original version here. I know its simple but its really kicking my but.function init() { // update metadata.title IWEventRegistry.addItemHandler("/Headline", "onItemChange", setHeadline); }function setHeadline(){ var headlineItem = IWDatacapture.getItem("/Headline"); var headline = headlineItem.getValue(); if (headline != null) { var metadataItem = IWDatacapture.getItem("/Metadata/title").setReadOnly(); metadataItem.setValue(headline); IWDatacapture.redraw(); }}
function setHeadline(item) { var headline = item.getValue();alert("headline: " + headline); // debugging - make sure we get something if (headline != null) { var metadataItem = IWDatacapture.getItem("/Metadata/title"); if(metadataItem.getValue() == null){ alert("Setting title value"); [color=red]// debugging metadataItem.setValue(headline);metadataItem.setReadOnly(true); } else { alert("title already has value: " + metadataItem.getValue()); // debugging }[/color] }}
function init() { // update metadata.title IWEventRegistry.addItemHandler("/Headline", "onItemChange", setHeadline);// make title readonly if already populatedvar title = IWDatacapture.getItem("/Metadata/title"); if (title.getValue() != null){ title.setReadOnly(true); }}
Ok I run your script but it doesn't put any value in title field. It should put and keep 1st headline value in title field even if headline field changes, title field will always retain 1st input of headline value. Will still work with it to see if I get desired result. Thanks
Thanks Guys for all your help, I got it working. Now I can have good weekend. Here is my solution.var h=0;function init() { // update metadata.title IWEventRegistry.addItemHandler("/Headline", "onItemChange", setHeadline); // make title readonly if already populated var title = IWDatacapture.getItem("/Metadata/title"); if (title.getValue() != null){ title.setReadOnly(true); }}function setHeadline(item) { var headline = item.getValue(); //alert("headline: " + headline); //make sure we get something if (headline != null) { var metadataItem = IWDatacapture.getItem("/Metadata/title"); if(metadataItem.getValue() != null && h==0) { //alert("Setting title value"); metadataItem.setValue(headline); metadataItem.setReadOnly(true); h=h+1; } else { //alert(title already has value: " + metadataItem.getValue()); } }}
h variable was needed. Before title changes everytime headline changes, but when h is declared everytime function is called h is incremented by 1 so title always remains same from if statement because h==0 always from 1st input of headline. Thanks ;-)