Jquery浮点不起作用

时间:2013-12-23 10:59:17

标签: 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;
    }
    });

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

4 个答案:

答案 0 :(得分:2)

这不是jQuery,甚至是JavaScript的任务。您可以使用HTML5's step attribute

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

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

或者,要允许带有可选千位分隔符的任意长度数字,请尝试:

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

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

请注意,一般情况下,您不应限制用户输入。让他们输入他们想要的东西,然后尝试验证它。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

试试这个 -

 $(".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

答案 3 :(得分: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;
   }
});