Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Can JavaScript fire a LiveCycle submit event?

Not applicable
Hello,



I went down the road of attaining finer control over the user experience when submitting a form or document, things like aborting the submit if the user responds negatively to a popup warning. The common wisdom seemed to be, "Instead of the LiveCycle submit button you need to use a simple button, do whatever scripting you want to do, and as the final step use the Acrobat API event.target.mailDoc() method."



I've tried that, and it does indeed work. However, I feel like the LiveCycle Submit button has a little better handle on actually orchestrating the dispatch of the form. Most significantly, the LiveCycle Submit button provides the popup with a radio button choice between desktop email and browser email, which I think is an important feature. I don't get that with the Acrobat API event.target.mailDoc().



So, here is my point. I'm wondering if I can have both... provide a simple button that does whatever fine-tuned scripting I want to do, and THEN it causes a LiveCycle email submission to fire?
0 Replies
yodadobe
Level 6
Level 6
"Process Fields" in the object library uses a hidden submit button. The visible button fires the click event on the hidden submit button. Just add your logic in there.



Mind posting an example of your popup? I need a simple message with OK, Cancel and have not yet spent to effort of creating one.
Not applicable
Your hint is working for me perfectly.



Here is the example of a popup you requested.



var isOK = true;



[ do validating of various kinds, use isOK as the flag... ]



if (isOK)

{ var Mbox = xfa.host.messageBox

("Are sure you want to commit the form and email it?\n\n"+

"If you click OK, all fill-in fields will be closed to "+

"further changes, and the final result will be prepared "+

"for email.\n\n"+

"If you are not sure you are ready, click CANCEL to resume "+

"work on the form.\n\n"+

"Hint: Save a local copy before using the Commit button, "+

"and you will have the option to make future revisions on "+

"that copy.", "Confirmation", 2,1);

if (Mbox != 1) isOK = false;

}



if (isOK)

{ app.runtimeHighlight = false;

for (nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++)

{ oFields = xfa.layout.pageContent(nPageCount, "field");

nNodesLength = oFields.length;

for (nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++)

{ oField = oFields.item (nNodeCount);

sName = oField.name;

if (sName == "Up" || sName == "Down" || sName == "Insert" || sName == "Remove" || sName == "Spawn")

oField.presence = "invisible";

else if (sName == "Print" || sName == "Submit"); // No action

else oField.access = "readOnly";

}

}



/* Fire the hidden submit button */



parent.HiddenSubmit.execEvent ("click");

}
Not applicable
Sorry about the appearance of that. If you'd like to see the form as a PDF, send me your email address.
yodadobe
Level 6
Level 6
Got it, just needed this part:



var Mbox = xfa.host.messageBox

("Are sure you want to commit the form and email it?\n\n"+

"If you click OK, all fill-in fields will be closed to "+

"further changes, and the final result will be prepared "+

"for email.\n\n"+

"If you are not sure you are ready, click CANCEL to resume "+

"work on the form.\n\n"+

"Hint: Save a local copy before using the Commit button, "+

"and you will have the option to make future revisions on "+

"that copy.", "Confirmation", 2,1);

if (Mbox != 1) isOK = false;



I was looking at execDialog which is much more powerful, but complicated to use.