【发布时间】:2011-03-04 20:45:30
【问题描述】:
我的页面中有一个validationSummary。我想在validationSummary 填充后调用一个javascript 函数。我怎样才能做到这一点?
我想我应该在后面的代码中添加一个属性,但我不知道该属性的键是什么。
有什么帮助吗?
【问题讨论】:
标签: c# asp.net validationsummary
我的页面中有一个validationSummary。我想在validationSummary 填充后调用一个javascript 函数。我怎样才能做到这一点?
我想我应该在后面的代码中添加一个属性,但我不知道该属性的键是什么。
有什么帮助吗?
【问题讨论】:
标签: c# asp.net validationsummary
我认为这是不可能的。但是,可以通过在执行回发的控件上设置 OnClientClick 来拦截验证。然后您可以检查全局 JavaScript 变量 Page_IsValid 以获得验证结果。
要记住的一点是,当页面上没有验证器时,Page_IsValid 将是未定义的。
【讨论】:
您将需要调用 javascript 函数 Page_ClientValidate() 来启动连接到您的页面控件的 ASP.NET 验证。一旦调用,Page_IsValid 布尔值将被正确设置。
这是我如何使用它的示例。如果 ASP.NET 验证成功,我禁用该按钮,否则该按钮保持启用状态并向用户显示验证摘要。 OnClientClick 来自 ASP:Button 控件。
OnClientClick="javascript:Page_ClientValidate(); if (Page_IsValid==true) { this.disabled=true; }"
【讨论】:
我开始通过@EverettEvola 实现该解决方案,但同时验证逻辑被多次调用并显示多个ValidationSummary 弹出窗口。我的解决方案如下:
在按钮上(在我的例子中,按钮是提交按钮)
OnClientClick="return CustomValidationOnClick()"
还有 CustomValidationOnClick()
function CustomValidationOnClick(source, args) {
//Manually kickoff page validation
//This call will display the Validation summary popup if page is invalid
Page_ClientValidate();
//Page_IsValid set by the result of the Page_ClientValidate() call
if (Page_IsValid == true) {
this.disabled=true;
return true; //if Submit button return true to continue form submit
}
else {
//do whatever here
return false; //if Submit button return false to cancel form submit
}
}
【讨论】: