如何解决jquery验证在突出显示后立即触发取消突出显示功能
尽管我的问题很相似with this
提议的解决方案对我不起作用。 让我解释一下会发生什么。 正如标题所暗示的那样,在高亮之后立即调用 unhiglight。
这只会在一种情况下发生: 使用远程电子邮件方法。 如果 ajax 调用返回 true(点击提交按钮后)(电子邮件不存在)错误类被添加并立即替换为未填写的字段中的有效类(必填)...
如果我再次点击提交,问题就不会出现...如果某些字段未填写错误类已正确附加。
第一次提交和第二次提交的区别(如果电子邮件未更改)是没有对电子邮件进行 ajax 调用。
因此,如果进行 ajax 调用(针对电子邮件)并返回 true,则会出现上述问题。 在上面 Soverflow 帖子中找到的 showerrors 方法的代码没有帮助。
这是validate()里面的代码:
$('#bizuserform').validate({
showErrors: function (errorMap,errorList) {
var errors = this.numberOfInvalids();
if (errors) {
var message = errors == 1 ? '1 field is miissing!!!' : errors + ' fields are missing!!!';
$("#error_general span").empty().html(message);
$("#error_general").show();
} else {
$("#error_general").hide();
}
this.defaultShowErrors();
},highlight: function(element,errorClass,validClass) {
if($(element).attr("id")=='staffclient_yes')
{
$('#staffclient_yes').parent().addClass(errorClass);
}
if($(element).attr("id")=='medical')
{
$('#medical').parent().addClass(errorClass);
}
$(element).addClass(errorClass).removeClass(validClass);
},unhighlight: function(element,validClass) {
if($(element).attr("id")=='staffclient_yes')
{
$('#staffclient_yes').parent().removeClass(errorClass);
}
if($(element).attr("id")=='medical')
{
$('#medical').parent().removeClass(errorClass);
}
$(element).removeClass(errorClass).addClass(validClass);
},onfocusout: false,submitHandler: function(form,event) {
event.preventDefault();
//ajax request here...ommited for brevity
},rules:{
name: {
required: function () {
return $('#coname').is(':blank');
},normalizer: function( value ) { return $.trim( value );}
},lastname: {
required: function () {
return $('#coname').is(':blank');
},coname: {
required: function () {
return $('#name,#lastname').is(':blank');
},buztype:{required:true
},med_spec:{
required: function(element) {return $('#medical').is(':checked');}
},password:{
required:true,password:true,normalizer: function( value ) { return $.trim( value );}
},address:{ required: true,normalizer: function( value ) { return $.trim( value );}
},city:{ required: true,municipality:{ required: true,email:{required: true,email: true,remote: {
url: "email_validity.PHP",//if I remove the remote method here problem is fixed
type: "post"
},normalizer: function( value ) { return $.trim( value );}
},phone:{required:true,normalizer: function( value ) { return $.trim( value );},digits: true,rangelength: [10,14]
},staff_to_client:{
required: "#staf_eng:visible"
}
},messages:{
buztype:'',staff_to_client:'',med_spec:'',coname:"",name:'',lastname:'',password:{required:""
},address:'',city:'',municipality:'',email:{required:"",email:'not valid email',remote:'email allready exists.'
},phone:{required:"",rangelength:'phonenumber messasge.',digits:'only digits here'
},staff_to_client:{
required: ""
}
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。