我使用以下函数停止允许文本框中的文本和特殊字符。但是,如果我复制文本像“aa2ss”。它会允许它。如果我复制粘贴意味着我不想允许文本,字符串中的特殊字符只允许此文本框中的字符串数字。我怎么能这样做?
$("input[name$='inputid']").bind('keypress keyup',
function(){
$(this).val($(this).val.replace(/[^0-9]+$/i,''));
}
);
答案 0 :(得分:0)
您需要将函数绑定到jquery.blur() event:
$("input[name$='inputid']").blur(function(){
$(this).val($(this).val().replace(/[^0-9]+$/i,''));
});
答案 1 :(得分:0)
如果用户在输入元素中粘贴(而不是键入)文本时要运行相同的逻辑,则只需将paste
事件添加到现有的事件处理程序中。
但首先,你有一些错字:
...$(this).val.replace...
应该是:
...$(this).val().replace...
您还需要更改regex
以捕获不位于字符串末尾的非数字字符:
/[^0-9]+$/i
到:
/[^0-9]+/i .
因此最终的代码应为:
$("input[name$='inputid']").bind('keypress keyup paste',function(){
$(this).val($(this).val().replace(/[^0-9]+/i,''));
});
jsFiddle演示:http://jsfiddle.net/hjehR/