我有一个JQuery语法,允许用户只在文本字段中输入数字。 Live code
然后我需要编写一个额外的代码,以允许用户在文本框中输入“ - ”(连字符),但它不起作用。 Live code
请帮忙。
HTML
Number : <input type="text" name="quantity" id="quantity" /> <span id="errmsg"></span>
CSS
#errmsg{color: red;}
JS
$(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 !=='-' && (e.which < 48 || e.which > 57)) {
//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});
答案 0 :(得分:2)
您可以通过将String.fromCharCode(e.which) != '-'
(-
的charCode)添加到您的条件中来允许连字符:
if (e.which != 8 && e.which != 0 && String.fromCharCode(e.which) != '-' && (e.which < 48 || e.which > 57)) {
...
}
答案 1 :(得分:0)
使用regExps真的非常容易!
使用regExp /[0-9\-]/g
检查文本是否仅包含您想要的字符,以及它是否显示错误信息。
$(document).ready(function () {
$("#quantity").keypress(function (e) {
var text = this.value;
if (text.match(/[0-9\-]/g).join('') != text) {
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});