我们Button的OnClick事件调用服务器端代码。使用OnClientClick事件调用客户端代码。代码如下:
<asp:Button ID="btnSave" runat="server" CssClass="btn" OnClick="btnSave_Click" Text="保 存" OnClientClick="return checkControl();" />
说明:btnSave_Click为服务器端保存事件。
checkControl()为保存前在前端用js进行检查的js方法,js代码如下。
function checkControl()
{
var vApyName=document.getElementById("txbApyName").value;
if(vApyName.length<=0)
{
alert("'申请人姓名'不能为空!");
document.getElementById("txbUrlList").focus();
document.getElementById("txbUrlList").select();
return false;
}
}
{
var vApyName=document.getElementById("txbApyName").value;
if(vApyName.length<=0)
{
alert("'申请人姓名'不能为空!");
document.getElementById("txbUrlList").focus();
document.getElementById("txbUrlList").select();
return false;
}
}
注:
为什么要在OnClientClick事件中加上return?
因为开始时,我并没有加上return语句,发现执行完js方法后仍然执行后台的click事件。原来的代码如下:
<asp:Button ID="btnSave" runat="server" CssClass="btn" OnClick="btnSave_Click" Text="保 存" OnClientClick="checkControl();" />
总结:
用 OnClientClick验证我们的提交数据时,一定要返回ture或者false,即一定要加上return,否则OnClick失效。 当返回false时OnClick服务器端事件才被中止。