Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否';忽略';jQuery中的验证失败是否会导致所有验证都不起作用?_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 是否';忽略';jQuery中的验证失败是否会导致所有验证都不起作用?

Javascript 是否';忽略';jQuery中的验证失败是否会导致所有验证都不起作用?,javascript,jquery,validation,Javascript,Jquery,Validation,当我使用validate()方法的“ignore”时,无论验证结果如何(好或坏),都会继续提交 这就像“忽略”使所有输入元素的验证绕过。所以,即使一个或多个输入元素不满足验证条件,表单也已提交,服务器将正常工作 哦,在我的例子中,“忽略”使submitHandler和(甚至!)invalidHandler也不能工作 什么地方不对?下面是我的示例(不是全部)代码 $('#frm').validate({ submitHandler: function() {

当我使用validate()方法的“ignore”时,无论验证结果如何(好或坏),都会继续提交

这就像“忽略”使所有输入元素的验证绕过。所以,即使一个或多个输入元素不满足验证条件,表单也已提交,服务器将正常工作

哦,在我的例子中,“忽略”使submitHandler和(甚至!)invalidHandler也不能工作

什么地方不对?下面是我的示例(不是全部)代码

$('#frm').validate({
                submitHandler: function() {
                    var applyMsg = "Proceed?";
                    var f = confirm(applyMsg);

                    if(f) {
                        //console.log(" confirm  : "+ f );
                        return true;
                    } else {
                        //console.log(" no confirm  : "+ f );
                        return false;
                    }
                },
                invalidHandler: function(form, validator) {
                    var errors = validator.numberOfInvalids();
                    if (errors) {
                        alert(validator.errorList[0].message);
                        validator.errorList[0].element.focus();
                    }
                },
                ignore: '.ignore',
                rules: {
                    PHOTO_PLACE: {photo_place: true}
                },
                messages: {
                    PHOTO_PLACE: {required: ""},
                    ENT_DATE: {minlength: "", maxlength: ""}
                }
            });




<form id="frm" name="frm" method="post" class="app_frm">
    <input type="hidden" id="PHOTO_PLACE" name="PHOTO_PLACE" />
    <input type="text" name="ENT_DATE" minlength="8" maxlength="8" class="ignore" />
</form>
$('frm')。验证({
submitHandler:function(){
var applyMsg=“是否继续?”;
var f=确认(应用符号符号);
如果(f){
//控制台日志(“确认:+f”);
返回true;
}否则{
//控制台日志(“无确认:+f”);
返回false;
}
},
invalidHandler:函数(表单、验证器){
var errors=validator.numberOfInvalids();
如果(错误){
警报(validator.errorList[0]。消息);
validator.errorList[0]。元素。焦点();
}
},
忽略:'.忽略',
规则:{
照片地点:{照片地点:正确}
},
信息:{
照片位置:{必需:},
ENT_日期:{minlength:,maxlength:}
}
});

谢谢您的帮助。

一旦您忽略了文本框,您就只有一个字段——“照片位置”,我不确定您是否正确设置了规则。查看文档()我很确定它应该是
规则{PHOTO_PLACE:{required:true;}}
。否则,很难看到验证器如何知道许多可能的规则中哪些必须解析为true才能进行验证。试试看你是否还有问题。此外,如果您说提交处理程序根本没有运行,请检查控制台是否有任何错误。@ADyson感谢您的回复。关于提交处理程序,浏览器控制台中没有任何错误。我将规则设置为PHOTO_PLACE:{required:true;},但它不会成功。在本例中,我通过绕过不检查指定输入而不使用“忽略”对其进行编码。