【问题标题】:How to show required field validation conditionally from a view如何从视图有条件地显示必填字段验证
【发布时间】:2013-06-14 11:09:27
【问题描述】:

在我的 MVC 4 应用程序中,我有一个 Multi Select List Box,我可以在其中选择多个值,我还有一个 Item New Role 作为列表之一items,也指模型属性 NewRole

所以每当用户选择包含新角色时使用 Jquery,我将向用户提供一个文本框,该文本框从给定的模型中绑定到 NewRole,

@Html.TextBoxFor(m => m.NewRole) 

其中还具有以下评估字段。

@Html.ValidationMessageFor(m => m.NewRole)

如果用户选择的选项没有New Role项,我将隐藏此文本框。

现在的问题是,即使我隐藏了包含文本框的 div,它也会尝试评估所需的字段验证。

我需要的是当用户选择新角色并且用户没有在提供的文本框中输入任何内容时,然后验证所需的字段属性。

我知道我可以编写一个 JQuery 来在 div 可见且没有任何值时显示警报。但我希望这个默认验证应该在这种情况下发生。

有可能吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 razor html-helper


    【解决方案1】:

    有条件地进行某些客户端验证的技巧之一...您可以使用验证的 IGNORE 属性...

    jQuery Validate Ignore elements with style

    $("#myform").validate({
       ignore: ":hidden"
    });
    

    如果这不是您想要的...我会提供更具体的信息

    【讨论】:

      【解决方案2】:

      是的,可以使用 RemoteAttribute。看看这篇文章:

      http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

      请记住,这不是客户端验证,这意味着正在发生实际的服务器发布。

      【讨论】:

        【解决方案3】:

        Try using the rules add and remove, when new role is selected add new rule which validates the textbox on other selection remove the rule from text box and hide it like you are doing:

        http://validation.bassistance.de/rules/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-15
          • 2014-02-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-11
          相关资源
          最近更新 更多