在使用查询功能后,文本字段浮点不起作用。这里我使用了数字函数。这意味着用户只能键入数字。
$(".number-field").keypress(function(e)
{
var code = e.which || e.keyCode;
if((code >= 48 && code <= 57) || code == 8){
console.debug(code);
}
else {
return false;
}
});
这里浮点不起作用。我该如何解决?
答案 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;
}
});