我想要做的是设置一个扩展的jquery函数,它允许文本框中没有数字。这就是我所拥有的:
$.fn.onlyNumbers = function(evt) {
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
这是对的吗? 当它是一个扩展函数并且让它做同样的事情时我如何调用它?
答案 0 :(得分:3)
我认为你不了解jQuery插件是如何工作的。
调用函数时this
是调用函数的jQuery对象。在这个函数中你需要注册一个keypress
事件来处理这些字符 - 哦,你不需要任何特定于浏览器的代码,因为jQuery会为你做这部分。
试试这个:
$.fn.onlyNumbers = function() {
return this.keypress(function(e) {
if (e.which > 31 && (e.which < 48 || e.which > 57)) {
e.preventDefault();
}
});
}
答案 1 :(得分:0)
如果有人粘贴数字怎么办?检查keyup上文本框的值,并将其替换为该值的数字版本(正则表达式,任何人?)。