我怎样才能使一个字段只在某些条件下是必需的?

Posted

技术标签:

【中文标题】我怎样才能使一个字段只在某些条件下是必需的?【英文标题】:How can I make a field required only under certain conditions? 【发布时间】:2013-05-26 09:00:53 【问题描述】:

我有一个用于创建和编辑用户的编辑视图。该视图具有Password1Password2 字段,分别用于密码和确认。这些在视图模型中没有标记为必填项,因为在编辑用户时,这些字段是可选的,仅用于更改密码。

我不希望有两个几乎完全相同的视图模型,只有两个Required 属性不同。我确实对这些字段进行了服务器验证,但我非常不喜欢两阶段验证,其中用户修复了所有客户端验证错误,只是提交并等待,然后出现服务器验证错误。

在某些情况下,我是否可以通过某种方式打开这些字段的客户端验证?我知道我可以使用 jQuery 添加必要的属性,但我希望有一个更简单、更干净的解决方案。

【问题讨论】:

我会检查 [this other SO question][1] 中询问的 jquery 不显眼验证。 [1]:***.com/questions/11534910/… 【参考方案1】:

我使用了MVC Foolproof Validation。它有一组可爱的条件属性,包括[RequiredIf]

【讨论】:

【参考方案2】:

我会按照this other SO question 中的要求检查 jquery 不显眼的验证。

服务器端的验证可以通过ajax调用来完成更复杂的验证逻辑。

否则,custom rule 似乎是要走的路线。

更多详情请见jQuery Validation documentation。

【讨论】:

以上是关于我怎样才能使一个字段只在某些条件下是必需的?的主要内容,如果未能解决你的问题,请参考以下文章

我有以下测试代码。我怎样才能使这个条件为真

DocuSign Rest API - 需要某些 PDF 字段

类型不匹配。必需:布尔值,在 Scala 中找到:Future[Boolean]

我怎样才能使禁用的字段变灰?

有条件的,我怎样才能使操作自动化?

在 Facebook 登录中将电子邮件 ID 设为“必需”