服务器控件妙用OnClientClick事件阻止回传
很多时候,我们需要对服务器控件的输入内容进行验证,如果在后台.cs页面进行验证,则会刷新页面,在用户体验和效率方面都不划算,其实完全可能在客户端使用javascript进行验证,只要编写客户端事件OnClientClick便可以了。OnClientClick会在OnClick事件之前触发。如果OnclientClick事件函数返回false,那么控件不再回传,即OnClick事件也不会再执行。见下例:
<script type="text/javascript">
function check() {
var input = document.getElementById("text1").value;
if(input == null || input == "")
{
alert("文本框不能为空!");
return false;
}
return true;
}
</script>
<div>
<asp:TextBox ID="text1" runat="server"></asp:TextBox>
<asp:Button ID="summitBtn" runat="server" Text="提交" OnClick="summitBtn_Click" OnClientClick="return check();" />
</div>
因为check()函数有返回值,所以前面的return关键字不能漏掉。如果检验通过,即返回true,则summitBtn_Click会继续执行,可以在summitBtn_Click中对表单的数据进入数据库操作。