在文本字段中,浮点使用查询函数后不起作用。在这里,我为数字使用了一个函数。这意味着用户只能键入数字。
$(".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;
}
});