javascript - 如何在数字字段中只允许 2 位小数

标签 javascript extjs

我想限制用户可以在输入中写入的小数位数。 例如,当我写入 850,9560 时,该字段不会显示错误,这是我的字段:

{
    xtype: 'numberfield',
    fieldLabel: 'My field label',
    name: 'montant_sm',
    id: 'montant_sm_',
    decimalPrecision: 2,
    maxValue: 999.99,
    decimalSeparator: ','
}

My field without error for 880,9794 value

My field with max number exceeded displays correct error

你知道 sencha 当小数大于 2 时 1 如何设置错误吗? 谨致问候。

最佳答案

如果将小数精度设置为 2,则当您离开该字段时,该值会自动舍入。

如果这不是本意,您必须编写一个自定义验证器,您可以在其中检查值并返回 true(如果接受),或者返回一些错误消息(如果不接受)。

例如

validator: function(v) {
    var commaPos = v.indexOf(',')+1,
        strLen = v.length;
    console.log(commaPos);
    console.log(strLen);
    if(commaPos > 0 && commaPos < strLen-2) return "Maximum allowed precision: two digits!";
    return true;
}

https://fiddle.sencha.com/#view/editor&fiddle/2drt

关于javascript - 如何在数字字段中只允许 2 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030777/

相关文章:

javascript - Razor View 查找从 javascript 循环分配的 Id

javascript - 过滤内部数组javascript

javascript - ajax 调用结束并返回新数据时如何阻止或处理用户输入

extjs - 如何将 errorSummary 的默认标题从 "Errors"更改为 EXTJs 中的其他内容

Extjs漂亮的同步Popup

extjs - IE 8不支持foreach方法

extjs - 如何更改 ExtJs 3.3 中工具提示的位置

javascript - JS setTimeout/setInterval 返回值是否被复用?

javascript - ExtJs 监听器

javascript - 如何设置具有事件背景元素的 Bootstrap 模式对话框