繁体   English   中英

jQuery验证-errorPlacement破坏了代码

[英]jQuery validation - errorPlacement is breaking code

一旦我插入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;
            }
        });
    });

我将您的代码放入jsFiddle中,这使我的浏览器崩溃。 您的验证代码很好...但是,将alert()放在errorPlacement:函数中不是

errorPlacement: function(error, element) {
    alert("This alert is not popping");  //--- this is causing infinite loop
},

警报是在错误时触发的,但是当您在警报上单击“确定”时,由于表单仍然无效,因此将立即重新触发它,然后重复该过程……这将陷入无限循环的不间断警报中。 它崩溃了我的Safari,因为如果没有立即弹出下一个警报,我将无法解除警报。 我确定其他浏览器正在以自己的方式处理此循环。

其他一切工作正常。

取消注释违规行,后果自负:

http://jsfiddle.net/59bsp/


这是errorPlacement:可以正常工作的解决方案...

errorPlacement: function(error, element) {
    error.insertAfter(element);  //- this line demonstrates the default behavior
},

http://jsfiddle.net/59bsp/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM