You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery Validation校验name为数组格式的表单输入字段

解决方法

出现该问题的原因是jQuery Validation插件默认以name属性作为规则绑定的唯一标识,相同name的字段默认只会对第一个生效,且动态新增的表单元素不会自动继承已有的校验规则。核心解决思路是调用插件提供的*rules('add')*方法,逐个为每个表单元素绑定校验规则,具体修改步骤如下:

步骤1:调整校验初始化逻辑,批量为已有字段绑定规则

不要把item[]的规则直接写在validate方法的rules配置里,初始化插件完成后,选中所有name="item[]"的元素批量添加规则:

// 先初始化校验插件
$("#submit_form").validate();
// 批量为已有的item[]字段添加必填规则
$('input[name="item[]"]').each(function() {
  $(this).rules('add', {
    required: true,
    messages: {
      required: "该项为必填项"
    }
  });
});

步骤2:动态新增字段时同步绑定校验规则

在追加输入框的逻辑里,新的输入框插入DOM后,立刻为它添加同样的校验规则:

$("#btn1").click(function(){
  // 生成新的input元素
  const $newInput = $("<input type='text' name='item[]'><br> ");
  $(".a").append($newInput);
  // 给新添加的input绑定校验规则
  $newInput.rules('add', {
    required: true,
    messages: {
      required: "该项为必填项"
    }
  });
});

修改后完整可运行代码

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.3/dist/jquery.validate.min.js"></script>
</head>
<body>
<form id="submit_form" method="post">
<input type='text' name='item[]' required><br>    
<input type='text' name='item[]' required> <br>       
<span class="a"></span>   
 <input type="submit" text="Submit" >
</form>
<br><br><br><br>    
<button id="btn1">Append Input Field</button>
<script>
$(function()
{
   $("#btn1").click(function(){
    const $newInput = $("<input type='text' name='item[]'><br> ");
    $(".a").append($newInput);
    $newInput.rules('add', {
      required: true,
      messages: {
        required: "该项为必填项"
      }
    });
  });
  $("#submit_form").validate();
  $('input[name="item[]"]').each(function() {
    $(this).rules('add', {
      required: true,
      messages: {
        required: "该项为必填项"
      }
    });
  });
});
</script>
</body>
</html>

内容的提问来源于stack exchange,提问作者JessciaLau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 23:27:03