Okay, so to be consistent throughout my form I'd like to use JavaScript throughout my form. Additionally, it is easier to use. Unfortunately, there's one behavior in FormCalc that I can't replicate in JavaScript, and I need it to work. Here's the script in FormCalc
var vnum = _Body.count
var choice = xfa.host.messageBox("Warning! You are about to permanently delete this entry. Are you sure you wish to proceed?", "Warning!", 3, 2)
if ((vnum==(this.parent.index+1)) & (vnum<>1) & (choice==4)) then
Body[this.parent.index-1].Radio_Button_Subform.Radio_Button_Group.rawValue="2"
endif
if (choice==4) then
_Body.removeInstance(this.parent.index)
endif
and here's my attempt to replace it using JavaScript
var vnum = _Body.count;
var choice = xfa.host.messageBox("Warning! You are about to permanently delete this entry. Are you sure you wish to proceed?", "Warning!", 3, 2);
if ((vnum==(this.parent.index+1)) && (vnum!=1) && (choice==4))
Body[this.parent.index-1].Radio_Button_Subform.Radio_Button_Group.rawValue='2';
if (choice==4)
_Body.removeInstance(this.parent.index);
I've tested it out and I know the problem occurs with the line
Body[this.parent.index-1].Radio_Button_Subform.Radio_Button_Group.rawValue='2';
However, I don't understand why this reference is invalid in JavaScript when it worked in FormCalc, and I don't know how to make it work.
Thanks for your help.
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
For javascript version replace youre code with this one :
xfa.resolveNode("Body["+(vnum-2)+"].Radio_Button_Subform.Any_other_property_of_this_type").rawValue="2";
Also check attach, hope this is what you need.
BR
Views
Replies
Total Likes
Hi,
Try this one:
Body[this.parent.index-1].Radio_Button_Subform.Radio_Button_Group.rawValue="2";
BR
Views
Replies
Total Likes
Unfortunately, that didn't work. The green "BR" below the line of code wasn't relevant, was it?
Views
Replies
Total Likes
Hi,
Yes, BR it is not part of the code.
If you'll post youre form I have a look at it.
BR
Views
Replies
Total Likes
I'm posting my form below. In case this gets queued, below are links to the Shrinking Text Field discussion as well as the form.
http://forums.adobe.com/thread/458209?tstart=0
(question-why are some web addresses displayed as links and others not in the forum? It's difficult to use web addresses that aren't links.)
Look at the delete button. I'll post the JavaScript version that doesn't work soon (I'm modifying the code a bit).
Views
Replies
Total Likes
Here's the form with the delete button scripted in JavaScript as well as the same thing with the delete button scripted with FormCalc. FormCalc works perfectly, but JavaScript has one problem. If anyone has any comments about JavaScript conventions (tabbing, readability, whatever), I'd gladly take advice. The problem line for the JavaScript one is the line that's commented out. The message box above the problem line is to make sure the script is getting there. As it is, when the bottom instance is deleted using the delete button, it will go away, but the value of the radio button group in the instance above it won't change to "no". The only exception is when the bottom instance is the first line, then it works, but that's because there's no instances to deal with for that radio button group. Everything else works the way I want it (at least the way I want it right now), so any help on this point would be awesome. As you can see, using JavaScript yields a nicer script (shorter, one less variable, not redundant).
Views
Replies
Total Likes
use double quotes instead of single quotes. like this:
Body[vnum-2].Radio_Button_Subform.Radio_Button_Group.rawValue="2";
-rpeterson
Views
Replies
Total Likes
I've tried it with single quotes, with double quotes, and with no quotes, and none of them work. It seems like it should work with single quotes (I have the line
Yes_No_Base.rawValue
='1'
in the form and it works just fine. I'm confused
Views
Replies
Total Likes
Hi,
For javascript version replace youre code with this one :
xfa.resolveNode("Body["+(vnum-2)+"].Radio_Button_Subform.Any_other_property_of_this_type").rawValue="2";
Also check attach, hope this is what you need.
BR
Views
Replies
Total Likes
Thanks Paul, this works! One last question-why do I need to use xfa.resolveNode and the [+vnum+] stuff? I'm trying to figure out why this works and why the method I was using didn't, so I can figure out how to avoid problems like this in the future.
Views
Replies
Total Likes
Hi,
In JS to take some node with index you have to use resolNode function.
BR
Views
Likes
Replies