如何在 jQuery Validate 中标记必填字段

Posted

技术标签:

【中文标题】如何在 jQuery Validate 中标记必填字段【英文标题】:How to mark required field in jQuery Validate 【发布时间】:2011-03-18 09:30:33 【问题描述】:

我正在使用 jQuery Validate 和 xVal 来验证输入表单。这很好用。 但是,我确实想用星号 (*) 或类似的东西标记我的必填字段,以显示实际需要哪个字段。

我可以手动执行此操作,但由于我已经使用 xVal 生成了我的验证规则,我想我可以根据提供的规则自动标记必填字段。

有没有办法连接到 xVal 或 jQuery Validate 以检索规则,或者以某种方式让它们标记我的必填字段?

我正在使用最新版本的 jQuery 和 jQuery Validate。

谢谢

【问题讨论】:

【参考方案1】:

required 类赋予表单元素,并使用以下代码

$(document).ready(function() 
     $('<span style="color:red;">*</span>').insertAfter('.required');
);

这会将“*”附加到每个具有required 类的元素

希望对你有帮助

【讨论】:

是的,如果他们有所需的类,这可能会起作用,但据我所知,xVal 不会设置类,而是直接将规则提供给 jQuery Validate。我猜规则存在于记忆中或其他东西中。 那你会上传一些代码吗?我想看看验证函数是如何附加到元素上的。 这是生成的 jQuery 验证代码,gist.github.com/482877。至于 xVal,你可以在这里获取代码,xval.codeplex.com。如果你愿意,我也可以提供一个要点。【参考方案2】:

这是可能的

    获取表单中的所有输入 迭代并查找输入是否具有规则必需 如果是,找到该输入的标签 在标签文本末尾添加 *

您的代码将如下所示

    $.each($("#you-form input"), function( index, element ) 
      var rule =  $(element).rules() ; // this will get the rules for each input
      if(rule && rule.required) 
        //find label and append red *
      
    );

【讨论】:

【参考方案3】:

创建一个单独的“规则”变量可能是最简单的,你可以将它传递给 jQuery 和其他一些函数。这个其他函数将遍历它并标记所有必填字段。

【讨论】:

这可行,但我不想修改 xVal 来完成此操作。为了从我的编辑模型生成我的验证规则,我使用这行代码:html.ClientSideValidation()

以上是关于如何在 jQuery Validate 中标记必填字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中验证之前修剪非必填字段

jquery validate表单验证插件

条件JQuery验证必填字段

Jquery.Validate - 根据哪个选项卡添加/删除规则

jQuery插件 -- 表单验证插件jquery.validate.js

jQuery Validate 验证但不提交