Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否更新控件模糊上的验证摘要列表?_Javascript_Asp.net_Validation_Dom Events_Validationsummary - Fatal编程技术网

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