2016-03-15 52 views
-1

我正在使用正则表达式来验证名称。每当我按下一个键时,我都会调用keyup并验证..如果它与正则表达式匹配,我正在使空的特定字符..但是在浏览器的页面中,匹配的键不是空的同一时间..它只是等待,直到下一个keyup cal ..如何在当时激活keyup事件?

如何解决它? 任何一个可以帮我请。一旦看到下面的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

+0

为什么你使用'$( '.inputType')'在顶部,'$('#inputType')'在最后?简单的错误?你也错过了'match'中的'h'因为你的正则表达式 – toomanyredirects

+0

对不起。虽然没有进入 – Bhanu

回答

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格式,因为它可以帮助你运行的代码,而重写页面

+0

谢谢这么多的工作......真的很棒.. :) – Bhanu

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); 
    }); 

和可以称之为whenver要通过handler()

+0

对不起,当keyup – Bhanu

+0

更新了plunker时,处理程序没有被调用,添加了'console.log()'来显示它触发 – alexey