除了使用一长串if语句之外,还有一种方法可以根据输入到另一个文本框中的变量对acrobat文本框进行编程以递增计算吗? 这就是我所拥有的。
var v = this.getField("FixNum").value;
if (v == "1")
{
event.value = 84 ;
}
else if (v == "2")
{
event.value = 88 ;
}
else if (v == "3")
{
event.value = 92 ;
}
else
{
event.value = "";
}
正如你所看到的那样,这将变得很麻烦,因为这种模式从1到9,其中9 = 116,然后是10 - 100,其中10 = 135.在100之后,每个单位的模式是495 + 6,即101 = 501我希望有人能理解这一点,因为我想不出另一种方式要求!
答案 0 :(得分:0)
几种可能性:
•如果你能想出一个公式,那就最简单了。
•如果值对是任意的,您可以创建一个查找表(以数组的形式)。
•如果输入数字是(或多或少)连续整数,则可以使用简单数组,其中索引是输入数字,具有该索引号的元素是输出数字。
•如果它更复杂,则必须创建一个二维数组,其中每个元素都是一个输入和输出数组。
•如果您正在寻找if ... else if语句的简单替换,则可以使用switch ...语句,该语句适用于完全任意的值对。
在OP的评论之后更新:
根据OP的评论,输入数字是连续的,这意味着上面的第三点将是选择的方法。为此,请按以下步骤操作:
创建文档级脚本(名称无关紧要):
var myPricesArr = [0, 12, 15, 17, 23, 27, 30, 33] ;
替代可能性:
var myPricesArr = new Array() ;
myPricesArr[0] = 0 ;
myPricesArr[1] = 12 ;
myPricesArr[2] = 15 ;
myPricesArr[3] = 17 ;
myPricesArr[4] = 23 ;
myPricesArr[5] = 27 ;
myPricesArr[6] = 30 ;
myPricesArr[7] = 33 ;
两种变体都是等价的,但第二种变体更易于维护,但需要更多输入...
创建一个名为" numFixts"的文本字段,格式为数字,无小数,可能具有最大值(以防止表单失败)。
创建一个名为" fixtsAmt的文本字段,格式为数字。在此字段的Calculate事件中,添加以下JavaScript:
event.value = myPricesArr[this.getField("numFixts").value] ;
那应该这样做。