我在客户端有一个ValidationSummary
(应该由asp:LinkButton调用)来检查我的RequiredFieldValidator
和CustomValidator
:
<asp:ValidationSummary
ID="valSum"
runat="server"
CssClass="label"
HeaderText="There are these errors:"
ShowSummary="False"
ShowMessageBox="True"
EnableClientScript="True"
DisplayMode="BulletList">
</asp:ValidationSummary>
我需要,如果有错误(所以有空字段或自定义验证器失败)调用另一个javascript函数。
我真的希望这可以在.NET 3.5上使用,对吗?
我在SO here上看过类似的问题,但根本不清楚。
答案 0 :(得分:8)
将此脚本放在页面末尾:
<script type="text/javascript">
var originalValidationSummaryOnSubmit = ValidationSummaryOnSubmit;
ValidationSummaryOnSubmit = function (validationGroup) {
originalValidationSummaryOnSubmit(validationGroup);
if (Page_IsValid === false) {
alert("boo!");
}
}
</script>
答案 1 :(得分:4)
是的,这是可能的。您将需要更改链接按钮和/或其他控件的OnClientClick属性,从而导致执行验证。还要将CausesValidation属性设置为false。
<asp:LinkButton ID="lnkButton1" runat="server" CausesValidation="false" OnClientClick="return DoValidation('');" ... />
Javascript功能:
function DoValidation(validationGroup) {
var isValid = Page_ClientValidate(validationGroup);
if (!isValid){
isValid = DoSomethingElse();
}
return isValid;
}
如果您只想验证一个组,可以将该组的名称传递给“DoValidation”函数。
<asp:LinkButton ID="lnkButton1" runat="server" CausesValidation="false" OnClientClick="return DoValidation('NameOfGroup');" ... />