我正在尝试获得两个表单字段的产品。
字段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):"";
答案 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 ;
那应该这样做。
注意:我现在没有验证。