如何限制数字字段输入输入多于两位小数

Posted

技术标签:

【中文标题】如何限制数字字段输入输入多于两位小数【英文标题】:How to restrict the numberfield input from entering more than two decimals 【发布时间】:2013-06-04 07:09:13 【问题描述】:

强制小数精确到一定精度似乎很容易,而且它们有很多方法。我尝试使用 all as:

第一种方式:使用配置

            xtype: 'numberfield',
            fieldLabel: 'Balance',
            name: 'balancefield',    
            decimalPrecision:2

替代方案:通过覆盖或扩展here

或者使用正则表达式

所有这些都适用于模糊或其他一些事件或函数。它们是在小数点后两位停止输入的一种方式。在 textfields 中我们可以使用 RegExma​​skRe 配置。但是在 numberfield 中,它们是否类似于 maskRe,所以用户不能输入两个以上小数点。 任何帮助表示赞赏。谢谢。

【问题讨论】:

【参考方案1】:

maskRe 确实在数字字段内部使用,因此您必须模仿它的行为。也就是说,监听该字段的keypress 事件,如果输入适合您,则停止该事件。

例如,使用正则表达式强制两位小数精度:

Ext.widget('numberfield', 
    renderTo: Ext.getBody()
    ,enableKeyEvents: true
    ,listeners: 
        keypress: function(field, e) 
            var v = field.getValue();
            if (!Ext.isEmpty(v)) 
                if (/\.\d2,/.test(v)) 
                    e.stopEvent();
                
            
        
    
);

【讨论】:

谢谢 rixo。我之前实际上尝试过,但错过了 e.stopEvent(); 只是有一个问题。他们有什么限制小数点前的数字到 15。我在你提供的上述解决方案中尝试了不同的正则表达式。你能帮我解决这个问题吗。再次感谢 上述解决方案有一些问题> 我可以输入三个 0,后跟任何数字。小数点后的位数。

以上是关于如何限制数字字段输入输入多于两位小数的主要内容,如果未能解决你的问题,请参考以下文章

JS正则表达式,限制输入数字,且小数点保留两位

Vue 限制input输入 限数字 或 小数点后两位number

JSP控制输入框只能输入数字并且限制输入小数为两位

ios开发怎么限制textfiled只输入数字和小数点,有小数时保留两位小数

将输入限制为小数点后2位jquery onchange事件[重复]

Jquery 正则限制文本框只能输入数字(整数保留两位小数负数)