gpt4 book ai didi

javascript - 更新控件模糊的 ValidationSummary 列表?

转载 作者:行者123 更新时间:2023-11-28 03:00:59 25 4
gpt4 key购买 nike

一个ValidationSummary将显示回发时的错误列表。当每个字段都固定时,它的验证器就会被触发,并且任何验证文本都会消失。我想自动更新ValidationSummary也是如此。

以下工作正常:

<asp:TextBox ID="ForenameTextBox" onblur="ValidationSummaryOnSubmit()" runat="server" />

但这并不理想,因为这意味着在所有领域都需要更改和维护这一点。 ( ValidationSummaryOnSubmit 是一个 Microsoft 函数。)所以我尝试动态地执行此操作:

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);
}
}
}
}

但这不起作用 - 整个 ValidationSummary当一个字段固定时就会消失,并且 ValidationSummaryOnSubmit函数似乎被调用了两次。如果我使用简单的分配而不是 addEvent它可以工作,但我想满足那些可能已经在 onBlur 中发生某些事情的领域事件。

基本上我想我只需要添加对 ValidationSummaryOnSubmit 的调用函数到 onBlur 的“列表”每个控件的处理程序。为什么上面的代码似乎没有做到这一点?

最佳答案

这是一种在所有文本框上获取 onblur 属性的服务器端方法(它也应该与验证组一起使用):

  • 创建一个从 TextBox 派生的类,例如 TextBoxEx
  • 在此派生类中添加属性,例如 this.Attributes.Add("onblur", string.Format("ValidationSummaryOnSubmit('{0}')", this.ValidationGroup);
  • 使用标签映射,以便您现有的所有<asp:TextBox>标签仍然有效: <system.web>
    <pages>
    <tagMapping>
    <add tagType="System.Web.UI.WebControls.TextBox"
    mappedTagType="MyControls.TextBoxEx"/>
    </tagMapping>
    </pages>
    </system.web>

另一种方法是使用 ControlAdapters添加属性。

相关链接:
Understanding ASP.NET Validation
MSDN - tagMapping Element for pages

关于javascript - 更新控件模糊的 ValidationSummary 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com