Conditional calculation script in field that allows input if conditions not met

Jan 25, 2018

Copy link to clipboard

Copied

Greetings,

I am new to the group and to JavaScript and I am trying to create a calculation script on a field that if two conditions are not met, the field allows the user to enter data manually.

In the script below, the calculation is performed if a value is entered in Field1 but I'd like it to allow the user to manually enter data into the field if no data is entered in Field1 and Field2 (and no calculation is performed).  I hope my question makes sense...  Sometimes there is no value for Field2 so the user must be able to populate the field.  Even an override would work that if the user enters a value into the field, the calculation script is ignored.

// Get first field value (Condition one)

     var f1 = getField("Field1").valueAsString;

// Get second field value (Condition two)

     var f2 = getField("Field2").valueAsString;

// Get Third field value

     var f3 = getField("Field3").valueAsString;

if (f1.length>0) {

// Set this field value equal to the sum in inches

    event.value = (Number(Number(f1)+Number(f3)) * 12).toFixed(2);

}

else {

    event.value = ""; 

}

Thank you,

John

Acrobat Standard 2017 (Windows)

Adobe Community Professional
Correct answer by Thom Parker | Adobe Community Professional

A calculation is blocked if event.rc is set to false. This allows the user to enter data into the field that is being calculated,otherwise the calculation always overwrites any user input.

So allow the calculation to proceed as normal and then separately, set event.rc based on your conditions. You don't need the "if" at all.

event.rc = (f1.length > 0);

TOPICS
Acrobat SDK and JavaScript, Windows

Views

142

Likes

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

Conditional calculation script in field that allows input if conditions not met

Jan 25, 2018

Copy link to clipboard

Copied

Greetings,

I am new to the group and to JavaScript and I am trying to create a calculation script on a field that if two conditions are not met, the field allows the user to enter data manually.

In the script below, the calculation is performed if a value is entered in Field1 but I'd like it to allow the user to manually enter data into the field if no data is entered in Field1 and Field2 (and no calculation is performed).  I hope my question makes sense...  Sometimes there is no value for Field2 so the user must be able to populate the field.  Even an override would work that if the user enters a value into the field, the calculation script is ignored.

// Get first field value (Condition one)

     var f1 = getField("Field1").valueAsString;

// Get second field value (Condition two)

     var f2 = getField("Field2").valueAsString;

// Get Third field value

     var f3 = getField("Field3").valueAsString;

if (f1.length>0) {

// Set this field value equal to the sum in inches

    event.value = (Number(Number(f1)+Number(f3)) * 12).toFixed(2);

}

else {

    event.value = ""; 

}

Thank you,

John

Acrobat Standard 2017 (Windows)

Adobe Community Professional
Correct answer by Thom Parker | Adobe Community Professional

A calculation is blocked if event.rc is set to false. This allows the user to enter data into the field that is being calculated,otherwise the calculation always overwrites any user input.

So allow the calculation to proceed as normal and then separately, set event.rc based on your conditions. You don't need the "if" at all.

event.rc = (f1.length > 0);

TOPICS
Acrobat SDK and JavaScript, Windows

Views

143

Likes

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
Jan 25, 2018 0
Adobe Community Professional ,
Jan 25, 2018

Copy link to clipboard

Copied

A calculation is blocked if event.rc is set to false. This allows the user to enter data into the field that is being calculated,otherwise the calculation always overwrites any user input.

So allow the calculation to proceed as normal and then separately, set event.rc based on your conditions. You don't need the "if" at all.

event.rc = (f1.length > 0);

Likes

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
Reply
Loading...
Jan 25, 2018 1
jlggps LATEST
Jan 26, 2018

Copy link to clipboard

Copied

Perfect!  Thank you!

Likes

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
Reply
Loading...
Jan 26, 2018 0