我正在尝试制作一个锚标记,导致客户端和服务器验证。我现在有这个代码:
$(document).ready(function () {
$('div#imgEmailVerifyLoader').hide();
$('a#btn_SubmitContactMessage').click(function ()
{
if (Page_ClientValidate()) // this will trigger all validators on page
{
$('div#imgEmailVerifyLoader').show('slow');
window.Form_OnMasterPage.submit();
return true;
}
else
{
return false;
}
});
});
<a id="btn_SubmitContactMessage" href="Contact.aspx" onclick="Validate();" runat="server">SUBMIT</a>
这会正确执行客户端验证并显示错误消息。我有页面上每个文本框的验证控件。我还在代码中添加了一个服务器点击事件处理程序:
btn_SubmitContactMessage.ServerClick +=new EventHandler(btn_SubmitContactMessage_ServerClick);
}
protected void btn_SubmitContactMessage_ServerClick(object sender, EventArgs e)
{
if (!Page.IsValid)
{
RequiredFieldValidator4.ErrorMessage = "show";
return;
}
}
但是当我尝试通过关闭javascript来测试它时,链接(提交)不会回发。为什么会这样?
现在,我如何确保在回发后在服务器端进行验证。
答案 0 :(得分:0)
我想是因为'onclick = validate()'。而不是这样做你应该在'$(document).ready(function()'中注册该事件,就像你已经获得了其他JavaScript一样。如果JavaScript不可用,那么表单会正常提交并且你的服务器端验证会启动英寸