var NumberOnly = function () {
$(".number").keypress(function (e) {
e = e || window.event;
var code = e.keyCode || e.which;
if ((code >= 48 && code <= 57) || (code == 8) || (code == 9)) {
return true;
}
else {
return false;
}
});
$('.number').on({
focus: function () {
if (this.value == '0') this.value = '';
},
blur: function () {
if (this.value == '') this.value = '0';
}
});
}
我正在使用上述功能来确保文本框只能接受数字。但是,如果我输入1.5,则因为点(。)而拒绝了该值。任何人都知道如何修改它,使0.5或10.5等值也被认为是有效的?
答案 0 :(得分:0)
在46
条件中添加if
(ascii代码点)作为有效代码
$(".number").keypress(function (e) {
e = e || window.event;
var code = e.keyCode || e.which;
if ((code >= 48 && code <= 57) || (code == 8) || (code == 9) || (code==46)) {
return true;
}
else {
return false;
}
});
答案 1 :(得分:0)
你也可以使用正则表达式来匹配这样的东西
$(".number").keyup(function () {
var value = $(this).val();
var valid = (value.match(/^-?\d*(\.\d+)?$/));
if (valid) {
$("#error").html("Valid");
}
else {
$("#error").html("Invalid");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" class="number">
<div id="error"></div>
&#13;
答案 2 :(得分:0)
通过在允许的按键代码中允许使用密钥代码46,您的问题应该得到解决。
$(".number").keypress(function (e) {
e = e || window.event;
var code = e.keyCode || e.which;
if ((code >= 48 && code <= 57) || (code == 8) || (code == 9) || (code == 46)) {
return true;
}
else {
return false;
}
});
$('.number').on({
focus: function () {
if (this.value == '0') this.value = '';
},
blur: function () {
if (this.value == '') this.value = '0';
}
});