jquery验证并获取errorLabelContainer / wrapper以使用自定义验证标签

时间:2016-10-19 19:21:51

标签: jquery jquery-validate label

我正在使用jquery验证,我正在使用它:

  errorLabelContainer: "#errorList",
  wrapper: "li"

在页面顶部显示错误列表。但是,我也在使用它:

<label class="error" for="firstName" generated="true"></label>

在表单中的每个字段上方显示单个错误。

问题是,一次只能运行一个。如果我删除wrapper: "li"<label>会显示。如果我保留wrapper: "li",则标签不会显示。有什么想法导致这场冲突以及如何解决这个问题?提前谢谢。

小提琴:http://jsfiddle.net/sw87W/39/

1 个答案:

答案 0 :(得分:1)

  

如果我删除wrapper: "li"<label>会显示。如果我保留wrapper: "li",则label不显示。不知道是什么导致了这场冲突......

这不是冲突,而是how the plugin workswrapper是您希望包含消息元素的位置。默认情况下,它设置为windowlabel元素放在每个表单输入旁边。当您将其更改为li时,您告诉插件将消息元素与li一起放在errorLabelContainer中。 您根本无法使用wrapper告诉它一次出现在两个地方

  

......以及如何修复它?

我不完全确定你想要实现的目标,因为谁想要在两个地方显示相同的信息?

但是,如果你真的想要一个错误列表,并且每个元素旁边都有一条错误消息,那么你应该看看the showErrors function

您可以使用errorMap和/或errorList对象构建错误列表。如果您在此函数中使用this.defaultShowErrors(),则将重新激活通常出现在每个表单输入旁边的默认消息。

但是,IMO,您应该使用文档中的示例,其中您将默认消息放置在每个表单输入旁边,但在表单上方还有一个单个有用消息,即:< em>“你有3个错误,见下文”。

相关问题