在前臺用正則表達式爲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>
然後就大功告成了.