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

How to use JavaScript with Radio Buttons selected to assign a variable a value

New Here ,
Apr 17, 2013 Apr 17, 2013

Copy link to clipboard

Copied

Hi everyone, kinda new to Java and trying to build a form for my job for leave requests.  My issue is that I am trying to assign a variable a value whether one radio button or another is clicked.  Currently they are mutually exclusive with the following information: 

Name:  Radio

Tooltip:  Choice

Button Style:  Check

Radio Button Choice:  Yes (this is the export value I believe though I don't quite know how to use it properly)

neither are checked by default but if one is checked I would like to have a variable set to the text "Approved" and if the other radio button is checked I would like to set the variable to contain "Disapproved"

Here is my code currently and thanks in advance for the help to all:

var S_auth;

function auth() {

if (Radio.value == "Yes") {

var S_auth = "Approved";

  }

else {

var S_auth = "Disapproved";

  }

}

var Employee = this.getField("Emp_Name").value;

var Supervisor = this.getField("Supervisor").value;

var Leave_Type = this.getField("Dropdown2").value;

var cToAddr = name@emailaddy.com;

var cCCADDr = this.getField("Email").value;

var cBenAddr = this.getField("Sup_Email").value; if (cBenAddr != "") cCCADDr += ";" + cBenAddr;

var cSubline = "Re:  Leave request form for" + " " + Employee + ", " + Leave_Type + ", Status:  " + S_auth;

var cBody = "Your leave request has been " + S_auth + " by " + Supervisor.\n" + "Save mail attachment for your records.\n";

this.mailDoc({

     bUI:  true,

     cTo:  cToAddr,

     cCc:  cCCAddr,

     cSubject:  cSubLine,

     cMsg:  cBody

});

I honestly just want to have the subject line and body to be able to show approved or disapproved depending on which radio button the supervisor selects. 

Views

35.8K

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
1 ACCEPTED SOLUTION
Adobe Employee ,
Apr 17, 2013 Apr 17, 2013

Copy link to clipboard

Copied

Yes, your script is correct now and should work.

View solution in original post

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
New Here ,
Apr 17, 2013 Apr 17, 2013

Copy link to clipboard

Copied

if ( this.getField("Radio").value=="Yes") {

     S_auth = "Approved";

} else S_auth = "Disapproved";

I'm home from work and have been looking around but if anyone knows, will this work?  I'm going to try it in the morning

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
Adobe Employee ,
Apr 17, 2013 Apr 17, 2013

Copy link to clipboard

Copied

Yes, your script is correct now and should work.

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
New Here ,
Apr 18, 2013 Apr 18, 2013

Copy link to clipboard

Copied

When I press the submit button to create the email it still says the variable S_auth is undefined, is there something I did wrong?  I did what I wrote above and then tried this afterward and both of them state the variable is undefined:

First time

var S_auth;

function auth() {

if(this.getField("Radio").value == "Yes") {

S_auth = "Approved";

     }

else { S_auth = "Disapproved";

   }

}

Second time:

var Rad = this.getField("Radio").value;

var S_auth;

function auth() {

if(Rad == "Yes") {

var S_auth = "Approved";

     }

else {S_auth = "Disapproved";

  }

}

Now both times the variable S_auth gets printed as "undefined", is there something I'm doing wrong in getting the proper text to that variable? 

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
New Here ,
Apr 18, 2013 Apr 18, 2013

Copy link to clipboard

Copied

Anoop9178, I figured it out...for some reason Acrobat's Javascript doesn't like the function and once I took that out and just used the if statement it worked perfectly.  Thanks

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Is there a way to do this with Radio buttons too? I tried the following, but when I do and fill out the form with one of the radio buttons listed, it keeps displaying the fields (all required even if there is a response) and thinks they are missing.

var emptyFields = [];

for (var i=0; i<this.numFields; i++) {

     var f= this.getField(this.getNthFieldName(i));

     if (f.type!="button" && f.required ) {

          if ((f.type=="text" && f.value=="") || (f.type=="checkbox" && f.value=="Off") || (f.type=="Radio" && f.value=="Off"))

 

f.strokeColor = color.red;   //Highlights the required fields in red

emptyFields.push(f.name);

    }

}

if (emptyFields.length>0) {

     app.alert("Error! You must fill in the following fields:\n" + emptyFields.join("\n"));

}

else app.execMenuItem("Print");

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
Community Expert ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

The code above does check the values of radio-buttons.

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Ok. What I am finding though is that regardless if one of the radio button values are selected, the code is still coming up as requiring an answer for that particular required field. It doesn't seem to be working as intended.

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
Community Expert ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

I see the problem now. You used the wrong type value. It needs to be:

f.type=="radiobutton"

Not:

f.type=="Radio"

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Thanks. Something else appears to be wrong. It seems even if I enter a response into one of the required radio buttons, it is still mentioning that specific required field by name, even if they have a response. Also, it is not allowing the printing piece. Your assistance with troubleshooting is very greatly appreciated. 

RequiredFields.png

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
Community Expert ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Can you share the actual file (via Dropbox, Google Drive, etc.)?

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Sure, you can see it here: https://dl.dropboxusercontent.com/u/18645159/IPR-090716-FINAL.pdf

I've attached the Javascript to the Print button (right now) on page 1. Ideally, it would be on each Print Button on all pages.

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
Community Expert ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

How did you create the fields in this file?

On Wed, Sep 28, 2016 at 9:49 PM, matthewjcook15 <forums_noreply@adobe.com>

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Adobe DC

Matt

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
Community Expert ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

Strange... Something is wrong with them, but the script will still work, if adjusted slightly.

Try this version: IPR-090716-FINAL_edited.pdf - Google Drive

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
New Here ,
Sep 28, 2016 Sep 28, 2016

Copy link to clipboard

Copied

LATEST

Thank you for your help. Here is the final code that worked.

var emptyFields = [];

for (var i=0; i<this.numFields; i++) {

     var f = this.getField(this.getNthFieldName(i));

     if (f==null) continue;

     if (f.type!="button" && f.required ) {

          if ((f.type=="text" && f.value=="") || (f.type=="checkbox" && f.value=="Off") || (f.type=="radiobutton" && f.value=="Off")) {

            f.strokeColor = color.red;   //Highlights the required fields in red

            emptyFields.push(f.name);

          }

     }

}

if (emptyFields.length>0) {

     app.alert("Sorry! You must fill in the following fields prior to printing:\n" + emptyFields.join("\n"));

}

else { app.execMenuItem("Print");

  }

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