我使用了numberfield的decimalSeparator属性并将其设置为','(逗号)。现在我有读数值的问题,并用它做数学。
我首先尝试过简单:
var v = form.getForm().getValues().myfield / 2
一旦输入逗号,v就变为NaN。
然后我尝试了:
var v = Ext.util.Format.number(form.getForm().getValues().myfield, "0.000,00") / 2
一旦我输入逗号,v就会变为0。
我也尝试在格式字符串中使用/ i组合,但id也没有帮助。
我错过了什么?
答案 0 :(得分:3)
问题是getValues
无法正常工作。来自the documentation of getValues
(强调我的):
注意:值是从表单中所有已启用的HTML输入元素收集的,而不是从Ext Field对象收集的。这意味着所有返回的值都是字符串(或字符串数组),并且该值可能是字段的emptyText。
如果要确保您具有小数值,则必须执行以下操作:
var v_string = form.getForm().getValues().myfield; //get the string
v_string = v_string.replace(",", "."); //replace ',' with '.'
var v = (+v_string) / 2; //convert the value to a decimal and divide by 2
修改强>
您也可以尝试使用getFieldValues
(即form.getForm().getFieldValues()
)方法代替getValues
方法。这应该就像你在每个表单字段上调用getValues
一样。
答案 1 :(得分:2)
这应该有用。
var value = parseFloat("5000,5".replace(",", "."));