如何使用jQuery Validator验证表单时排除指定输入控件?
如何用jQuery Validator验证表单时跳过特定字段?
完全可以实现验证input#a但跳过textarea#b的需求,jQuery Validator提供了两种简洁的方式:
方法一:通过ignore配置项指定排除字段
在调用.validate()时,添加ignore参数,传入需要跳过验证的字段选择器即可。比如要排除id为b的textarea,直接在配置中加入该规则:
修改后的JavaScript代码:
jQuery.validator.setDefaults({ debug: true, success: "valid" }); jQuery('.needs-validation').validate({ ignore: "#b", // 新增:跳过id为b的字段验证 errorElement: "em", errorPlacement: function(error, element) { error.addClass("invalid-feedback"); if (element.prop("type") === "checkbox") { error.insertAfter(element.next("label")); } else { error.insertAfter(element); } }, highlight: function(element, errorClass, validClass) { $(element).addClass("is-invalid").removeClass("is-valid"); }, unhighlight: function(element, errorClass, validClass) { $(element).addClass("is-valid").removeClass("is-invalid"); } });
方法二:给目标字段添加ignore类
无需修改JavaScript配置,直接在HTML的textarea标签上添加class="ignore",jQuery Validator会自动跳过带有该类的字段:
修改后的HTML片段:
<div class="mb-3"> <label for="b" class="form-label">Text 2</label> <textarea class="form-control ignore" id="b" rows="3"></textarea> </div>
补充:给input#a添加验证规则
如果需要对input#a设置具体验证规则(比如必填、邮箱格式),需要先给input添加name属性,再在.validate()的rules中配置:
修改后的HTML:
<div class="mb-3"> <label for="a" class="form-label">Text 1</label> <input type="email" class="form-control" id="a" name="a" placeholder=""> </div>
修改后的JavaScript配置:
jQuery('.needs-validation').validate({ ignore: "#b", rules: { a: { required: true, // 必填规则 email: true // 邮箱格式验证 } }, // 其他原有配置... });
内容的提问来源于stack exchange,提问作者user20417316
相关产品推荐
相关产品推荐

