Javascript 如何使用jqueryvalidate';s错误放置和淋浴同时发生错误

Javascript 如何使用jqueryvalidate';s错误放置和淋浴同时发生错误,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我最近从验证中删除了messages函数。然后,我将其放入jqueryvalidate的showErrors函数中,以便获得所需输入的边框,使其变为红色。在这一点上,一切都很顺利,直到我用它添加了showErrors 添加showErrors的原因是我希望显示一条简单的消息,而不是多条消息,并且边框仍然显示为红色 从我下面的代码片段中,您将看到当前只有showErrors在工作。无论如何,有没有办法让这两个同时工作。如果是,怎么做 或者,这里有一个 调整JS errorPlacement: fu

我最近从验证中删除了messages函数。然后,我将其放入jqueryvalidate的
showErrors
函数中,以便获得所需输入的边框,使其变为红色。在这一点上,一切都很顺利,直到我用它添加了
showErrors

添加
showErrors
的原因是我希望显示一条简单的消息,而不是多条消息,并且边框仍然显示为红色

从我下面的代码片段中,您将看到当前只有
showErrors
在工作。无论如何,有没有办法让这两个同时工作。如果是,怎么做

或者,这里有一个

调整JS

errorPlacement: function() {
        return false;
    },
     showErrors: function(errorMap, errorList) {
        $('#formErrors').html('All fields must be completed before you submit the form.');
        this.defaultShowErrors();
    },
    submitHandler: function() {
                submit();
    },
$('#catalogRequestForm')。验证({
忽略:[],
规则:{
姓名:{
要求:正确,
最小长度:2
},
姓氏:{
要求:正确,
最小长度:2
},
地址1:{
要求:正确,
最小长度:5
},
城市:{
要求:正确,
最小长度:2
},
声明:{
必填项:true
},
邮编:{
要求:正确,
数字:对,
最小长度:5
},
电邮:{
要求:正确,
电子邮件:真的
}
},
errorPlacement:函数(){
返回false;
},
错误:功能(错误映射、错误列表){
$(“#formErrors”).html('提交表单之前必须填写所有字段');
},
submitHandler:function(){
提交();
},
});
。错误{
边框:2px实心#b82222;
}

showErrors
中使用
this.defaultShowErrors()
重新激活默认消息行为。由于在
errorPlacement
中有一个
return false
,因此只能看到样式,而不能看到消息

showErrors: function(errorMap, errorList) { // <- disable default errorPlacement
    $('#formErrors').html('All fields must be completed before you submit the form.');
    this.defaultShowErrors(); // <- re-enable default errorPlacement
},
演示

$('#catalogRequestForm')。验证({
忽略:[],
规则:{
姓名:{
要求:正确,
最小长度:2
},
姓氏:{
要求:正确,
最小长度:2
}
},
errorPlacement:函数(){
返回false;
},
错误:功能(错误映射、错误列表){
$(“#formErrors”).html('提交表单之前必须填写所有字段');
this.defaultRors();
},
submitHandler:函数(表单){
表单提交();
},
});
。错误{
边框:2px实心#b82222;
}


不确定我做错了什么,但同样的问题也在我身上发生。@Paul,不知道那句话是什么意思。我的现场演示修复了您在OP中报告的问题。您没有看到上面我的现场演示吗?对不起,我的解释太糟糕了。我根据您的答案对代码进行了更改,结果与最初的版本相同。我更新了我的问题并发布了新代码。@Paul,我仍然完全不知道你在说什么;您发布的代码正在运行。我所做的只是将这一行添加到您发布的JSFIDLE中:
submitHandler: function(form) {  // <- pass 'form' argument into function
    // do something, then submit
    form.submit();  // <- attach 'form' argument to '.submit()'
}