Jquery 浮点数不起作用



在文本字段中,浮点使用查询函数后不起作用。在这里,我为数字使用了一个函数。这意味着用户只能键入数字。

 $(".number-field").keypress(function(e)
    {
    var code = e.which || e.keyCode;
    if((code >= 48 && code <= 57) || code == 8){
    console.debug(code);
    }
    else {
    return false;
    }
    });

这里的浮点不起作用。我该如何解决?

这不是jQuery甚至JavaScript的任务。您可以使用HTML5的step属性:

<input type="number" step="0.001" />

调整为要允许的小数位数 - 上述允许最多指定千分之一。

或者,要允许使用可选千位分隔符的任意长度数字,请尝试以下操作:

<input type="text" pattern="[+-]?(d{1,3}(,d{3})*|d*)(.d+)?" />

但请记住,此解决方案无法识别区域设置,因此例如,在 , 是小数分隔符的地方,此输入将无法按用户预期工作。对于'是千位分隔符的地方也是如此。

请注意,一般来说,您永远不应该限制用户输入。让他们键入他们想要的任何内容,然后尝试验证它。

试试这个-

 $(".number-field").keypress(function(e)
        {
            var code = e.which || e.keyCode;
               if((code >= 48 && code <= 57) || code == 8 || code == 46|| code==110){
                 console.debug(code);
               } 
               else {
                 return false;
               }
        });

这里 110 代表小数点。有关详细信息,请参阅此链接 www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

好吧,您明确禁止除数字和退格之外的所有按键,这意味着您明确禁止.(或,,具体取决于您的文化)。所以不要那样做。 .是代码 46。 ,是代码 44。您应该能够修改if以允许相关。如果要允许负数,可以考虑允许-。(找出大多数可打印字符代码的简单方法:将其放在控制台中:"-".charCodeAt(0)

试试这个,

$(".number-field2").keypress(function(e){
   var code = e.which || e.keyCode;
   if((code >= 48 && code <= 57) || code == 8
               || code == 46){ // for .
       console.debug(code);
   } 
   else {
       return false;
   }
});

最新更新