• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Make button actions independent?

New Here ,
Apr 26, 2018 Apr 26, 2018

Copy link to clipboard

Copied

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);

}

TOPICS
Acrobat SDK and JavaScript , Windows

Views

255

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 26, 2018 Apr 26, 2018

Copy link to clipboard

Copied

Here are some articles that will solve your problem:

https://acrobatusers.com/tutorials/dynamically-setting-submit-e-mail-address

https://acrobatusers.com/tutorials/popup_windows_part1

Alerts, Popups, and Other Devices for Interacting with the User

Thom Parker - Software Developer at PDFScripting
Use the Acrobat JavaScript Reference early and often

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

LATEST

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines