Muiltplie两个字段,一个带有百分号

时间:2016-04-22 21:04:52

标签: javascript pdf rounding

我正在尝试获得两个表单字段的产品。

字段A *字段B =字段C

示例:(5.7%)* 14835 = 846

但是当我运行代码时,它会返回“NaN”。

我已经确定字段C也试图将%符号相乘。如何在执行计算时让字段C忽略%符号?

字段自定义计算脚本 - 此轮次为最接近的十分之一并添加“%”符号

if (!event.value) event.value = "";

else
event.value = util.printf("%.1f%", event.value);

字段B自定义计算脚本 - 此舍入为最接近的整数

if (!event.value) event.value = "";

else
event.value = util.printf("%.0f", event.value);

字段C自定义计算脚本 - 将字段A和B相乘,舍入为最接近的整数,并在乘法前将字段A转换为小数百分比

var v1 = getField("FieldA").value!="" ? getField("FieldA").value : 0;
var v2 = getField("FieldB").value!="" ? getField("FieldB").value : 0;

event.value = Math.round(((v1/100)*v2) !==0)?Math.round((v1/100)*v2):"";

2 个答案:

答案 0 :(得分:0)

看起来你可以从该输入值中取出%符号来正确计算。这可以通过替换完成,如下所示:

var v1 = getField("FieldA").value!="" ? getField("FieldA").value.replace(/%/, '') : 0;

答案 1 :(得分:0)

格式字段A为百分比。

然后该字段的值必须是实际因子(例如85%的0.85)。

如果您希望用户输入百分比数字,请将以下脚本添加到onFocus事件中:

event.value = event.target.value * 100 ;

Validate事件:

event.value = event.value / 100 ;

那应该这样做。

注意:我现在没有验证。