There is a document with forms in PDF, user input is checked using JavaScript. The user selects various options in the forms, and depending on the choice, various labels appear on the screen. Sample code below:

var countryofgrowth = this.getField("countryofgrowth").value; var countryofgrowth = this.getField("sugarquality").value; var countryofgrowth = this.getField("sugarQualitylevelhigh").value; var countryofgrowth = this.getField("cornquantitymax").value; var countryofgrowth = this.getField("cornquantity").value; var type = this.getField("type").value; if ((type == "sugar") && (countryofgrowth == "Afghanistan [AF]" || countryofgrowth == "Albania [AL]" || countryofgrowth == "Algeria [DZ]" || countryofgrowth == "Angola [AO]" || countryofgrowth == "Argentina [AR]" || ……) ) { getField("sugarlabel").display=display.visible; getField("goodsugar").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } else if ((type == "sugar") && (countryofgrowth == "Australia [AU]" || countryofgrowth == "Belgium [BE]" || countryofgrowth == "Canada [CA]" || countryofgrowth == "Czech Republic [CZ]" || countryofgrowth == "Denmark [DK]" || …..)) { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; if (sugarquality == "Low Quality") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.visible; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } else if (sugarquality == "High Quality") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.visible; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; if (sugarQualitylevelhigh == " More than 75%") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.visible; getField("sugarQualitylevelhighmorethan75").display=display.visible; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } else if (sugarQualitylevelhigh == "Less than 75%") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.visible; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.visible; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } } } else if ((type == "Corn") && (countryofgrowth == "Aland Islands [AX]" || countryofgrowth == "Alderney" || countryofgrowth == "American Samoa [AS]" || countryofgrowth == "Andorra [AD]" || countryofgrowth == "Anguilla [AI]" || countryofgrowth == "Antarctica [AQ]" || ……)) { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.visible; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; if (cornquantity == "More than 500t") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.visible; getField("cornquantitymorethan500").display=display.visible; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } else if (cornquantity == "More than 1000t") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.visible; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.visible; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; if (cornquantitymax == "Yes") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.visible; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.visible; getField("cornquantitymaxyes").display=display.visible; getField("cornquantitymaxno").display=display.hidden; } else if (cornquantitymax == "No") { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.visible; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.visible; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.visible; } } } 

At the moment, my problem is that in syntax with countries, the operator || - has then 30 to 90 countries, depending on the syntixis. I now have 4 different syntaxes with different countries in each. How can I group 4 groups under 4 different variables?

Ideally, you would like something similar to the example below, the code below does not work, presented for example only :

 var countryofgrowth = this.getField("countryofgrowth").value; var countryofgrowth = this.getField("sugarquality").value; var countryofgrowth = this.getField("sugarQualitylevelhigh").value; var countryofgrowth = this.getField("cornquantitymax").value; var countryofgrowth = this.getField("cornquantity").value; var type = this.getField("type").value; var Highriskcountries = ["Afghanistan [AF]", "Albania [AL]", "Algeria [DZ]", "Angola [AO]", "Argentina [AR]", .....]; var Lowriskcountries = ["Australia [AU]", "Belgium [BE]", "Canada [CA]", "Czech Republic [CZ]", "Denmark [DK]", .....]; var Mediumriskcountries = ["Aland Islands [AX]", "Alderney", "American Samoa [AS]", "Andorra [AD]", "Anguilla [AI]", "Antarctica [AQ]", .....]; var Acceptablecountries = ["Aland Islands [AX]", "Alderney", "American Samoa [AS]", "Andorra [AD]", "Anguilla [AI]", "Antarctica [AQ]", "Australia [AU]", "Belgium [BE]", "Canada [CA]", "Czech Republic [CZ]", "Denmark [DK]", .....]; if ((type == "sugar") && (countryofgrowth == Highriskcountries)) { getField("sugarlabel").display=display.visible; getField("goodsugar").display=display.hidden; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } else if ((type == "sugar") && (countryofgrowth == Lowriskcountries)) { getField("sugarlabel").display=display.hidden; getField("sugarquality").display=display.visible; getField("sugarQualitylevellow").display=display.hidden; getField("sugarQualitylevelhigh").display=display.hidden; getField("sugarQualitylevelhighmorethan75").display=display.hidden; getField("sugarQualitylevelhighlessthan75").display=display.hidden; getField("cornquantity").display=display.hidden; getField("cornquantitymorethan500").display=display.hidden; getField("cornquantitymax").display=display.hidden; getField("cornquantitymaxyes").display=display.hidden; getField("cornquantitymaxno").display=display.hidden; } 

Approximately my form looks like this:

! [enter image description here

Below I have presented an example of text fields in which my code is stored, at the moment my code is working, the problem is that the syntaxes with If ... Else with all countries take up many lines of code and it does not fit into one text field, therefore you have to transfer to somewhat, but unfortunately, since some of my If ... Else syntaxes have a large number of syntaxes, I cannot divide them between text fields, so I hoped to solve the problem by grouping countries so that we could save the number of lines of code + code neat. Thanks in advance for any help.

enter image description here

    1 answer 1

    As one of the options to push them into an array and check through the indexOf function

     var AcceptableCountries = ["Aland Islands [AX]", "Alderney", "American Samoa [AS]", "Andorra [AD]", "Anguilla [AI]", "Antarctica [AQ]", "Australia [AU]", "Belgium [BE]", "Canada [CA]", "Czech Republic [CZ]", "Denmark [DK]"]; var countryofgrowth = "Czech Republic [CZ]"; if(AcceptableCountries.indexOf(countryofgrowth) != -1){ console.log("okay"); } 

    You can also cut yourself the code by inserting the installation of fields in the function.

     var setDisplay = function(display){ var fields = ["sugarlabel", "goodsugar", "sugarQualitylevellow" /*,...*/]; for(var i=0; i< fields.length; i++){ if(fields[i] == display) { getField(fields[i]).display=display.visible; } else { getField(fields[i]).display=display.hidden; } } } setDisplay("goodsugar") 

    • I apologize for the late reply, only at the weekend it turns out to check the code. The first option provided unfortunately does not work, the countryofgrowth is a vertical dropdown in which the user selects the country himself. Because I was hoping this problem could be resolved in a similar way to if (countryofgrowth==AcceptableCountries) then setDisplay("goodsugar") ? Regarding the reduction of the field setting function, it should work, but when I check it for some reason I constantly swear at this place } else { , I will check it later I can find out what's wrong and write off anything. Thanks for the help - o0Lucky0o
    • I checked again the function for reducing the setting of fields, does not work and gives the following error 'RangeError: Invalid argument value. Field.display: 24: Field code: Calculate '. Thanks for the help. - o0Lucky0o 2:44 pm