0

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

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

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

其中还具有以下评价领域。

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

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

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

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

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

可能吗?

4

3 回答 3

1

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

jQuery验证忽略带有样式的元素

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

如果这不是您正在寻找的...我将提供更具体的信息

于 2013-06-14T16:09:02.290 回答
1

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/

于 2013-06-14T18:38:06.537 回答
1

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

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

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

于 2013-06-14T11:53:12.523 回答