Skip to main content
am87803748
Participant
April 26, 2018
Question

Make button actions independent?

  • April 26, 2018
  • 2 replies
  • 519 views

In Acrobat Pro DC, I am working on a form containing 14 dropdowns, each having the same default "Click to rate". I am JavaScript illiterate, but I knew I wanted a submit button to do a couple of things, so I searched for code and played with it. My button to submit the form, on mouse up, checks the dropdowns to make sure something other than the default is selected. While I just realized how ridiculously cumbersome the code is, it actually works. Now I also want the form to be emailed via the same button, but I can't figure out how to keep it from emailing when some dropdowns still have the default choice -- the user can now just click okay on the error message, opening the email interface.

Y'all, this code is long and laughable. Don't judge; I said I'm JavaScript illiterate.   Thanks for reading and, in advance, for any help I can get.

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown1

this.getField("Dropdown1").required = false; // clear required property

if(this.getField("Dropdown1").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown1").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown2

this.getField("Dropdown2").required = false; // clear required property

if(this.getField("Dropdown2").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown2").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown3

this.getField("Dropdown3").required = false; // clear required property

if(this.getField("Dropdown3").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown3").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown4

this.getField("Dropdown4").required = false; // clear required property

if(this.getField("Dropdown4").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown4").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown5

this.getField("Dropdown5").required = false; // clear required property

if(this.getField("Dropdown5").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown5").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown6

this.getField("Dropdown6").required = false; // clear required property

if(this.getField("Dropdown6").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown6").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown7

this.getField("Dropdown7").required = false; // clear required property

if(this.getField("Dropdown7").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown7").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown8

this.getField("Dropdown8").required = false; // clear required property

if(this.getField("Dropdown8").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown8").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown9

this.getField("Dropdown9").required = false; // clear required property

if(this.getField("Dropdown9").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown9").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown10

this.getField("Dropdown10").required = false; // clear required property

if(this.getField("Dropdown10").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown10").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown11

this.getField("Dropdown11").required = false; // clear required property

if(this.getField("Dropdown11").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown11").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown12

this.getField("Dropdown12").required = false; // clear required property

if(this.getField("Dropdown12").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown12").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown13

this.getField("Dropdown13").required = false; // clear required property

if(this.getField("Dropdown13").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown13").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

var bSubmit = true; // logical variable for submission test

// test drop down Dropdown14

this.getField("Dropdown14").required = false; // clear required property

if(this.getField("Dropdown14").value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown14").required = true; // set required property

}

if(bSubmit) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

This topic has been closed for replies.

2 replies

Inspiring
April 30, 2018

First of all, this code is a complete mess, lol.  You should never have to write the same thing twice, Rename your fields Dropdown.0  .1  .2  etc use a loop instead. 

function dropTest(){

var bSubmit = true; // logical variable for submission test

// test for dropdown menus

for (var x=0;x<=13;x++){

this.getField("Dropdown."+x).required = false; // clear required property

if(this.getField("Dropdown."+x).value == "Click to rate") {

bSubmit = false;

this.getField("Dropdown."+x).required = true; // set required property

}

}

return bSubmit

}

if(dropTest()) {

// your submit action;

} else {

app.alert("Not all required fields completed", 0, 1);

}

But your problem is you reset bSubmit to true every time you test a field.  So no matter what field Is not answered, as long as the last one is, the test passes.  Logically, as soon as one field fails the test, bSubmit should remain false. My code will take care of that.

Thom Parker
Community Expert
Community Expert
April 26, 2018
Thom Parker - Software Developer at PDFScriptingUse the Acrobat JavaScript Reference early and often