jquery验证功能不起作用

时间:2014-02-19 04:33:57

标签: javascript jquery validation

我使用以下函数停止允许文本框中的文本和特殊字符。但是,如果我复制文本像“aa2ss”。它会允许它。如果我复制粘贴意味着我不想允许文本,字符串中的特殊字符只允许此文本框中的字符串数字。我怎么能这样做?

      $("input[name$='inputid']").bind('keypress keyup',
          function(){
              $(this).val($(this).val.replace(/[^0-9]+$/i,''));
          }
      );

2 个答案:

答案 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/