【问题标题】:How to re-enable ASP.NET MVC unobtrusive validation on a field如何在字段上重新启用 ASP.NET MVC 不显眼的验证
【发布时间】:2011-10-18 23:07:41
【问题描述】:

我有一个设置了不显眼的验证的表单,并且在大多数情况下都运行良好。但是,在某些情况下,我必须禁用表单中的选择元素,然后有时会重新启用该元素(主要是在 QA 尝试所有可能的情况时,但仍然如此)。发生这种情况时,选择元素上的“必需”验证规则不再有效。

我尝试从元素的规则集合中删除并重新添加所需的规则,但无济于事。我已经尝试连接并调用here 描述的验证扩展,这也不起作用。

虽然我很想知道问题的根本原因,但我现在也愿意接受黑客攻击和解决方法。我觉得这是一个已解决的问题,但我在搜索中没有看到它。

谢谢, 马修

更新:我很想只选择一个答案,而不是承认我的愚蠢错误,但这并不能让网络变得更好。发生的事情是 select 元素中的选项是基于另一个字段的动态的。当基于该其他字段的选项中没有要进入的项目并且重新启用选择时,将重新填充选项时会发生禁用。当我重新创建满足“必需”规则的选项列表时,我正在做的是在默认选项中放置一个“0”值。我将默认值更改为空字符串,问题就消失了。

处理看似不正确的问题的协议是什么?我应该关闭它吗?

【问题讨论】:

    标签: asp.net-mvc-3 unobtrusive-validation


    【解决方案1】:

    为了重新解析不显眼的验证属性,您必须首先清除第一次解析属性时创建的验证器和不显眼验证数据。然后,您可以重新解析,如下所示:

    $("form").removeData("validator");  
    $("form").removeData("unobtrusiveValidation");  
    $.validator.unobtrusive.parse("form");  
    

    【讨论】:

      【解决方案2】:

      如果你打电话会发生什么

      $.validator.unobtrusive.parse('#formId');
      

      如果我没记错的话,这应该会再次对任何具有不显眼的data- 属性的元素启用不显眼的验证,这些属性是#formId 的子元素。

      【讨论】:

      • 我相信我确实尝试过,但我会验证。
      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      相关资源
      最近更新 更多