如何将输入字段限制为数值而不是整数值?
<input type="text" class="numericOnly">
JQ
$(".numericOnly").keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return false;
});
答案 0 :(得分:1)
试试这个
$(".numericOnly").keypress(function(e) {
var code = e.which;
if(($(this).val().indexOf(".") == -1 && code == 46) || (code >= 48 && code <= 57) || (code == 51) || (code == 8) || (code >= 37 && code <= 40))
{
return true;
}
return false;
})
.bind("paste",function(e) {
e.preventDefault();
});
答案 1 :(得分:0)
如果要允许小数点,请将它们添加到您正在使用的字符类中。例如。 /[^0-9.]/g
如果您的语言区域中的小数点是.
,或/[^0-9,]/g
,如果它是,
(在某些位置),则为.0.0.0.1
。
当然,这会让某人输入e.which
,您需要对该字段进行全价值检查以及按键级别检查。
另外,请记住,除了键入(例如,粘贴)之外,有很多方法可以进入字段,因此(再次)在某个阶段进行全价值检查将是一个好主意。
附注:使用e.keyCode
,而不是e.which
。 jQuery normalizes the event object,在不能原生设置的浏览器上设置{{1}}。
答案 2 :(得分:-2)
获取此js文件
http://thefitties.co.uk/js/plugins/jquery-numeric.js
和
在HTML中
<input class="numeric" type="text">
脚本中的
$("input.numeric").numeric()
$(document).ready(function() {
$("#txtboxToFilter").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});
OR