那时如何激活keyup事件?

时间:2016-03-15 11:51:49

标签: javascript

我正在使用正则表达式验证名称。每当我按一个键我正在调用keyup并验证..如果它与正则表达式匹配我正在制作空的特定字符..但是在浏览器的页面上匹配的键不是空的同时..它只等到下一个keyup cal ..

如何解决? 任何人都可以帮助我。一旦看到下面的plunker.its没有工作,但我已经编写了类似的代码

//js


 $(".inputType").bind("keyup",function(e){

      var str = $(".inputType").val();
      if(str!=undefined)
      {
        for(i=0;i<str.length;i++)
        {
          if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
          {
            str = str.replace(str.charAt(i),"");
          }
        }
      }
      $(".inputType").val(str);
    });
  });

https://plnkr.co/edit/i1mOu6OZ7XKIpK9QTLPH?p=preview

2 个答案:

答案 0 :(得分:0)

这是plnk

您可以像这样定义处理程序:

  var handler = function(e){
  var str = $(".inputType").val();
  if(str!=undefined)
  {
    for(i=0;i<str.length;i++)
    {

      if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
      {
        str = str.replace(str.charAt(i),"");
      }
    }
  }
  $("#inputType").val(str);
};  
  $(".inputType").bind("keyup", handler);
  });

您可以在handler()

之后随时拨打电话

答案 1 :(得分:0)

我试过这个,这对我有用

$(document).ready(function()
{    
$(document).on("keyup",".inputType",function(e)
{
 var str = $(this).val();
 var pattern = /^[a-zA-Z0-9]+$/;

  if(str!=undefined)
  {
    for(i=0;i<str.length;i++)
    {
      if(!pattern.test(str.charAt(i)))
      {
        str = str.replace(str.charAt(i),"");
      }
    }
  }
  $(".inputType").val(str);
});
});

总是喜欢使用基于文档的jquery格式,因为它可以帮助您在覆盖页面时运行代码