0

我喜欢 jQuery 验证的简单性和可扩展性。不过,在我最近的一些用例中,它似乎已经达到了极限。我缺少一些功能。我的问题:是否有支持这些功能的开源库,或者在开发中是否有什么了不起的东西?或者,您对如何扩展/使用验证框架来涵盖这些功能有任何巧妙的提示吗?

错过的功能:

  • 对于某些领域,我需要定义“警告”规则而不是错误。如果它们评估为假,则应该显示一条消息,但它应该包含一个“忽略”链接,允许用户关闭规则(类似于 MS Word 的拼写检查器,用户可以选择忽略拼写错误)。如果验证阻止发送表单,理想情况下,当用户单击“忽略”时立即发送表单。

  • 规则应该取决于我想用表单执行的操作。虽然对于一个操作,这些字段不是必需的,但执行另一操作可能需要它们。

作为这两种情况的示例,采用“发送电子邮件”表单:

  • “主题”字段不一定是必需的,但如果它为空,用户可能会错过它。理想情况下,验证框架会阻止发送表单并显示一条消息,例如“您错过了主题。忽略”。通过单击“忽略”,消息被禁用并发送表单。
  • 发送电子邮件肯定需要“收件人”字段。但如果表单提供了“保存草稿”按钮,则不应强迫用户填写此字段以保存草稿。
4

1 回答 1

1

对于第二名来说,这非常容易。您不仅可以提交,还可以让每个按钮调用一个在完成时提交的函数。在该函数中,您设置一个 jquery 变量来告诉您它来自哪个按钮,并在jQuery.validator.addClassRules()确定是否应用验证要求的调用部分中使用该变量的内容。第一个比较棘手,但您可以设置验证文本 - 这意味着您应该能够在其中包含一个链接。让链接触发一个函数,该函数再次更改应用/不应用逻辑使用的变量(并可能重新提交 - 或者,如果您的页面包含多个这些变量,则重新验证(从而删除错误消息) 并允许他们稍后使用不同的按钮提交)。

关于 addClassRules 可能是什么样子的快速示例。

jQuery.validator.addClassRules("toField",
{
    required: {
        depends: function(element)
        {
            return $submitNotSave;
        }
    }
});
于 2012-04-06T13:26:00.113 回答