Javascript 是否更新控件模糊上的验证摘要列表?
Javascript 是否更新控件模糊上的验证摘要列表?,javascript,asp.net,validation,dom-events,validationsummary,Javascript,Asp.net,Validation,Dom Events,Validationsummary,ValidationSummary将在回发时显示错误列表。由于每个字段都是固定的,它的验证器被激活,任何验证文本都将消失。我还想自动更新ValidationSummary 以下工作很好: <asp:TextBox ID="ForenameTextBox" onblur="ValidationSummaryOnSubmit()" runat="server" /> 但这不起作用-当一个字段被修复时,整个ValidationSummary就会消失,而ValidationSummaryO
ValidationSummary
将在回发时显示错误列表。由于每个字段都是固定的,它的验证器被激活,任何验证文本都将消失。我还想自动更新ValidationSummary
以下工作很好:
<asp:TextBox ID="ForenameTextBox" onblur="ValidationSummaryOnSubmit()" runat="server" />
但这不起作用-当一个字段被修复时,整个ValidationSummary
就会消失,而ValidationSummaryOnSubmit
函数似乎会被调用两次。如果我使用一个简单的赋值而不是addEvent
函数,它可以工作,但我希望满足那些可能已经在onBlur
事件中发生了一些事情的字段
基本上,我认为我只需要为每个控件的
onBlur
处理程序的“列表”添加对ValidationSummaryOnSubmit
函数的调用。为什么上面的代码似乎没有做到这一点?下面是一种服务器端方法,用于在所有文本框上获取onblur属性(这也适用于验证组):
- 创建从TextBox派生的类,例如TextBoxEx
- 在此派生类中添加属性,例如,
this.Attributes.Add(“onblur”、string.Format(“ValidationSummaryOnSubmit(“{0}”)、this.ValidationGroup);
- 使用标记映射,以便所有现有的
都可以添加该属性 相关链接:
以下是一种服务器端方法,用于获取所有文本框上的onblur属性(也适用于验证组):- 创建从TextBox派生的类,例如TextBoxEx
- 在此派生类中添加属性,例如,
this.Attributes.Add(“onblur”、string.Format(“ValidationSummaryOnSubmit(“{0}”)、this.ValidationGroup);
- 使用标记映射,以便所有现有的
都可以添加该属性 相关链接:
是的,这是一个好主意,谢谢。我想知道为什么我的脚本不太有效……当我使用第一种方法时,只要将其放入asp控件的属性中,我也会收到两次验证消息。有人知道是什么原因吗?是的,这是一个好主意,谢谢。我想知道为什么我的脚本不太有效rk虽然…当我使用第一个方法时,只需将其放在asp控件的属性中,我也会得到两次出现的验证消息。有人知道这是什么原因吗?这是另一种方法,您可能会觉得有用;这是另一种方法,您可能会觉得有用;addEvent(window, "load", UpdateValidationSummary); function addEvent(obj, evType, fn) { if (obj.addEventListener) { obj.addEventListener(evType, fn, true); } else { if (obj.attachEvent) { var r = obj.attachEvent("on" + evType, fn); return r; } } } function removeEvent(obj, evType, fn) { if (obj.removeEventListener) { obj.removeEventListener(evType, fn, true); return true; } else if (obj.detachEvent) { var r = obj.detachEvent("on" + evType, fn); return r; } } function UpdateValidationSummary() { if (typeof (Page_Validators) == "undefined") { return; } var i, val, ctrl; for (i = 0; i < Page_Validators.length; i++) { val = Page_Validators[i]; if (val.controltovalidate != null && val.controltovalidate != "") { ctrl = document.getElementById(val.controltovalidate); if (ctrl != null && typeof (ValidationSummaryOnSubmit) == "function") { //add call to ValidationSummary on blur addEvent(ctrl, "blur", ValidationSummaryOnSubmit); } } } }