jQuery Validate:如果具有相同的值,则在单个页面上验证多个表单

时间:2018-01-22 09:07:11

标签: javascript jquery jquery-validate multiple-forms

示例如果我有多个表单,我如何验证" identity_passport"必须是不同的不一样:

<form id="form_1">
  <input name="name_1">
  <input name="email_1">
  <input name="identity_passport_1" data-field="identity_passport">
</form>

<form id="form_2">
  <input name="name_2">
  <input name="email_2">
  <input name="identity_passport_2" data-field="identity_passport">
</form>

<form id="form_3">
  <input name="name_3">
  <input name="email_3">
  <input name="identity_passport_3" data-field="identity_passport">
</form>

<button type="submit" id="button_submit">Submit</button>

我有一个自定义提交按钮,它位于表单之外的单个页面中。我使用.each()方法,如(下):

<script>
  $('form').each(function () {

    $(this).validate({
      errorElement: "span",
      errorPlacement: function (error, element) {
        //
      },
      success: function (label, element) {
        //
      },
      highlight: function (element, errorClass, validClass) {
        //
      }
    });

  });
</script>

更新2018/01/25: 经过长时间的尝试,是可能的。这是我的测试和演示: https://jsfiddle.net/claudchan/4t41kjLr/4/

2 个答案:

答案 0 :(得分:1)

  

示例如果我有多个表单,我如何验证“identity_passport”必须是不同的...

使用jQuery Validate无法同时验证不同form容器中的字段。

jQuery Validate插件使用其规则和设置一次评估单个表单。它无法评估另一个完全独立的表单中包含的任何字段。它也不能评估不同形式的领域。

解决方法:使用单个form容器和dynamically add your fields。只要您保留唯一的name属性,它就会起作用。

答案 1 :(得分:0)

有一个jquery插件可用于验证表单 并且您也可以在没有它的情况下验证您的表单。您只需要记住每个关键字只会触发一种形式。

不要使用 ID 如果您有多个表单用于同一任务,它会给您一个 HTML DOM 错误。而不是使用类名来验证。

$('form').each(function() {   // <- selects every <form> on page
    $(this).validate({        // <- initialize validate() on each form
        // your options       // <- set your options inside
    });
});