2016-03-15 74 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