【问题标题】:disable Required Field Validators禁用必填字段验证器
【发布时间】:2011-07-16 17:42:52
【问题描述】:

我有一个由几个 requiredfieldvalidators 组成的表单,并且有 2 个按钮一个添加和更新按钮。我只想将 13 个 requiredfieldvalidators 中的 5 个与更新按钮相关联,并且所有与添加按钮相关联是可能的,因为我遇到了这个问题。

【问题讨论】:

  • 只是出于好奇,为什么随着更新突然不再需要该字段?
  • 因为有些字段用户无法更新,但管理员会
  • 那么用户如何插入它们呢?您最好使这些字段不可编辑并保留 requirefield 验证器

标签: asp.net forms validation requiredfieldvalidator


【解决方案1】:

将您的控件分成 2 个 div,然后使用 javascript 来控制验证器。

说单击“添加”启用验证器进行添加,单击“更新”然后启用验证器进行更新。

我写了一些js代码似乎可以满足你的要求。 迭代验证器并启用您需要的这些。 然后清屏,清除错误信息。

$(function() {
      hidedivTemplate();
});

function hidedivTemplate() {
      $('#divTemplate').hide();
      $('#divAuto').show();
      goThroughValidators(enableAutoDIV_Validation);
}

function hidedivAuto() {
      $('#divAuto').hide();
      $('#divTemplate').show();
      goThroughValidators(enableTemplateDIV_Validation);
}

function goThroughValidators(func) {
      for (i = 0; i < Page_Validators.length; i++) {
            var validator = Page_Validators[i];
            func(validator);
      }
      //After the iteration, clean the error info on the screen
      $("span[class='errorleft']").hide();
}

function enableAutoDIV_Validation(validatorObj) {
      switch (validatorObj.controltovalidate) {
            case "<%=AAA.ClientID%>":
            case "<%=BBB.ClientID%>":
                  ValidatorEnable(validatorObj, true);
                  break;
            default:
                  ValidatorEnable(validatorObj, false);
                  break;
      }
}

function enableTemplateDIV_Validation(validatorObj) {
      switch (validatorObj.controltovalidate) {
            case "<%=CCC.ClientID%>":
            case "<%=DDD.ClientID%>":
                  ValidatorEnable(validatorObj, true);
                  break;
            default:
                  ValidatorEnable(validatorObj, false);
                  break;
      }
}     

完整的代码 sn-p 可以在这里找到http://codelife.cybtamin.com/2012/08/enable-and-disable-asp-net-validator-by-javascript/

【讨论】:

    【解决方案2】:

    有些字段是否与两个按钮相关?

    如果存在与添加按钮相关的字段和与更新按钮相关的字段(但不相同),则可以在相关的字段、验证器和按钮上设置相同的 ValidationGroup 属性

    如果有与添加和更新按钮相关的字段:

    • 要么检查您的人体工程学...这听起来有点奇怪
    • 或使用自定义验证器来检查您自己的条件

    【讨论】:

    • 有些按钮必须对两个按钮都有效,但同时只能单击一个按钮。事实是我不知道如何使用自定义验证器
    • 然后开始here。主要思想是至少在验证器上处理一个服务器事件,您可以在代码中判断它是否正常。您还可以实现自定义 JS 来处理客户端检查值,但它有点复杂(但您不必等待点击验证)。但是,拥有一个在某些情况下可以验证但在其他情况下不能验证的字段听起来有点奇怪。你能解释一下你想要做什么(事实上,为什么添加和更新的形式是一样的)?
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多