【发布时间】:2025-12-10 10:30:01
【问题描述】:
我正在使用 jquery validate 进行表单验证。
表单中目前只有一个元素。其他元素稍后添加。form_email 字段为必填项。
这是我的 html 脚本
<form novalidate="novalidate" name="Emergency Contact Form" action="#" id="form_3" class="form-horizontal">
<div class="form-body">
<div class="form-group act">
<label class="control-label col-md-3">What is your email address? <span class="required">* </span></label>
<div class="col-md-4">
<input id="18" name="form_email" class="form-control element" type="email">
</div>
<br><br>
<div class="col-md-offset-3 col-md-9">
<button type="button" id="btn18" class="btn green">Submit</button>
</div>
</div>
</div>
</form>
<script>
$(document).ready(function(){
$("#form_3").validate({
rules: {
form_email: { required: true,email: true}
},
messages: {
form_email: { required:"We require your email address to proceed" }
}
});
$("#btn18").on("click",function(){
if($("#form_3").valid()){
getNextQuestion(elementVal);
}
});
});
</script>
问题是,当我将电子邮件字段保持为空并单击按钮时,它不会提供验证消息。但是当我输入一个无效的电子邮件地址(asdf@ghjk。)并单击按钮时,它会给出验证消息('请输入有效的电子邮件地址。')。 为什么当字段为空时不提供验证消息。 这些 html 元素是通过 ajax 注入的。 提前致谢!
【问题讨论】:
-
当字段为空时,您正确显示的代码会给出消息:jsfiddle.net/ebord060 ~ 请提供一些可以证明问题的内容。
-
@Sparky 是的,我知道这适用于 jsfidle。但不在我的项目中。整个 div(class="form-body") 以及表单中的 jquery 通过 ajax 加载。然后它没有按预期工作。对此的任何修复。
-
得到了答案 form.removeData("validator").removeData("unobtrusiveValidation");诀窍
-
如果它在项目中不起作用,但是你给我们展示的代码是起作用的,那么这个问题并不能帮助我们回答任何问题。