我有以下脚本:
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
$(function () {
$("#<%= txtAmount.ClientID %>").keydown(function (e) {
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 46) || (key >= 35 && key <= 40) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105))) {
e.preventDefault();
}
}
});
我要做的是允许十进制字符(。)但是阻止除数字之外的所有其他字符,因此唯一允许的字符是数字和小数。
我读了JQuery的键码,其中110,190是十进制字符,但上面的代码允许这些值,我在javascript上读取了46作为十进制键码,但从上面的代码中删除它也没有用。有人可以建议吗?
答案 0 :(得分:1)
似乎应该有一种更简单的方法来做到这一点
$("#<%= txtAmount.ClientID %>").keypress(function (e) {
if (!String.fromCharCode(e.which).match(/[\d.]/)) e.preventDefault();
});
答案 1 :(得分:0)
这是一个块:
$(document).ready(function () {
//called when key is pressed in textbox
$("#quantity").keypress(function (e) {
//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && e.which.indexOf('.') != -1 && (e.which < 48 || e.which > 57)) {
//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});
代码:
$(function () {
$("#<%= txtAmount.ClientID %>").keydown(function (e) {
//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && e.which.indexOf('.') != -1 && (e.which < 48 || e.which > 57)) {
//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});