【问题标题】:How do I write Java Script calculation for 2 radio button selections?如何为 2 个单选按钮选择编写 Java Script 计算?
【发布时间】:2017-03-17 15:56:35
【问题描述】:

我正在使用 Adob​​e Acrobat Pro DC 创建一个计算器。我有两组单选按钮,需要根据两个选择创建一个值。

您要测试什么类型的零件? (零件类型) -齿轮 -凸轮轴 -轴承

您要寻找哪种类型的缺陷? (缺陷类型) -燃烧 -压力 -深度

如果选择了 Gear 和 Burn,则值为 10。 如果选择齿轮和应力,则值为 70。 如果选择 Bearing 和 Burn,则值为 35。

我无法为每个选择分配一个值,因为这些组合是唯一的。我如何用 Java Script 编写这个?

这是我目前所拥有的(我意识到这是错误的)

if (PartType == Gear && DefectType == Burn) 值 == 10

请帮忙!谢谢!

【问题讨论】:

标签: javascript button radio acrobat


【解决方案1】:

我们可能有两种可能的方法来解决这个问题。

注意:在下文中,我们假设该值将显示在文本字段中。显示的代码 sn-ps 是该特定字段的计算事件脚本的一部分。如果要在另一个计算中使用该值,请定义变量,然后使用其名称而不是“event.value”。

a) 如果值可以从选项中计算出来(在“零件类型加缺陷类型”的意义上),我们可以将组件设置为单选按钮选择的返回值。在这种情况下,该值被快速计算:

event.value = this.getField("PartType").value*1 + this.getField("DefectType").value*1) ;

或者,如果有更复杂的算法/公式,请改用它。

b) 如果没有公式/算法来计算值,我们需要一个查找表。在我们的例子中,我们将定义一个二维数组,其中元素表示 PartType,并且是相应缺陷类型的数组。

然后单选按钮字段的返回值将对应于该查找表中的索引号。

我们将首先开始设置查找表:

var myLUT = new Array() ;
myLUT[0] = [10, 70, aa] ; // values for Gear and Burn, Stress, Depth
myLUT[1] = [bb, cc, dd] ; // values for Camshaft and Burn, Stress, Depth
myLUT[2] = [35, ee, ff] ; // values for Bearing and Burn, Stress, Depth

其中 aa、bb 等表示相应组件的值。

我们可以在计算脚本中定义此查找表,但创建包含此定义的文档级脚本更有效。

Calculate 脚本如下所示:

var pt = this.getField("PartType").value ;
var dt = this.getField("DefectType").value ;

event.value = myLUT[pt][dt] ;

这样就可以了。

在处理单选按钮字段时还有一件事。即使必须选择一个选项,也有可能(并且合法)没有选择作为默认值。然而,这两种情况都假定选择了选项。因此,我们必须通过要求两个组都有一个选中的选项来保护代码:

if (this.getField("PartType").value != "Off" && this.getField("DefectType").value != "Off") {
// now run our code
}

如果一个或两个单选按钮组(尚未)被选中,我们可能还必须指定会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2021-12-19
    • 1970-01-01
    • 2011-04-17
    • 2021-07-29
    • 2012-10-22
    • 1970-01-01
    相关资源
    最近更新 更多