此时如何激活键控事件

How to active the keyup event at that time?

本文关键字:事件 激活 何激活      更新时间:2023-09-26

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

如何解决?任何人都可以帮我.一旦看到下面的 plunker.it 不起作用,但我写了类似的代码

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

我试过这个,这对我有用

$(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格式,因为它可以帮助您在覆盖页面的同时运行代码

这里是 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()