一旦插入errorPlacement:
函数,它就会破坏代码。单击提交时不会进行验证。请有人帮忙。
如果我删除此功能,验证工作正常。
进口: -
<script type="text/javascript" src="/MyApp/js/jquery.js"></script>
<script type="text/javascript" src="/MyApp/js/jquery.validate.min.js"></script>
脚本: -
$(document).ready(function(){
$("#post-an-ad").validate({
rules:{
articleTitle:{
required: true,
minlength: 5
},
dateRequested:{
required: true,
date: true
},
articleLocation:{
required: true,
minlength: 8
},
'user.agent': "required",
'user.firstName': "required",
'user.emailId':{
required: true,
email: true
},
'user.phone':{
required: true,
minlength: 8,
number: true
}
},
errorPlacement: function(error, element) {
alert("This alert is not popping");
},
submitHandler: function(form){
// doing nothing on a submit.
return false;
}
});
});
答案 0 :(得分:0)
我把你的代码放到jsFiddle中,它崩溃了我的浏览器。您的验证码很好......但是,在alert()
函数中添加errorPlacement:
不是!
errorPlacement: function(error, element) {
alert("This alert is not popping"); //--- this is causing infinite loop
},
警告在出错时被触发,然后当你在警告时点击“确定”它会立即重新触发,因为表格仍然无效,该过程重复...这会陷入无限循环的不停警报。它撞毁了我的Safari,因为我无法在没有下一个警报立即弹出的情况下解除警报。我确信其他浏览器都以自己的方式处理这个循环。
其他一切都很好。
取消对违规行的评论,风险自负:
这是errorPlacement:
完全正常工作的解决方案......
errorPlacement: function(error, element) {
error.insertAfter(element); //- this line demonstrates the default behavior
},