微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery验证在突出显示后立即触发取消突出显示功能

如何解决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 举报,一经查实,本站将立刻删除。