在前臺用正則表達式爲Asp:TextBox加輸入檢查[Asp.Net]

在前臺用正則表達式爲Asp:TextBox加輸入檢查[Asp.Net]
Asp:TextBox的常用事件中只有TextChanged事件,而TextChanged和winForm不一樣,它是在按回車或焦點離開TextBox才能觸發,這會給我們帶來不便,

當然,你也可以用ASP.NET自帶的驗證控件RegularExpressionValidator給其寫正則表達式來驗證,但這個控件也是在回車或焦點離開開時觸發,而我們希望的是一邊輸入就有一邊驗證檢查.

 

怎麼才能使TextBox在我們一邊輸入的時候就一邊檢查了呢,下面分兩步來講.首先得給其加一個TextBox內容變化就能觸發的事件
現在我們用OnKeyUp事件來舉例,這裏有一點不好的是用OnKeyUp事件的話用鼠標複製操作時不會觸發,我想您一定有更好的辦法解決,
1)爲Asp:TextBox添加OnKeyUp事件,
在後臺Page_Load方法中,寫如下(爲後臺控件添加前臺事件請參照本博客前一篇文章[爲後臺控件註冊前臺事件[Asp.Net]])
 if (!IsPostBack)
{
     txtTest.Attributes.Add("Onkeyup","return txtTest_Onkeyup(this)");         
}
2) 在前臺添加javaScript
<script language="javascript" type="text/javascript">
function txtTest_Onkeyup(obj)
{
   //設置匹配只能輸入大於0的數的正則表達式
   var pattern = /^((/d+)|(0+))$/;
   var result = pattern.test(obj.value);
   if(result)
   {
     window.alert("匹配");
   }
   else
   {
     window.alert("不匹配,請重新輸入!");
     //如果輸入不合法,把textBox的值置爲空
    obj.value="";
   }
}
</script>

然後就大功告成了.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章