【问题标题】:I am using qtip2 with jQuery validate, tooltip doesn't disappear after validating inputs我正在使用带有 jQ​​uery 验证的 qtip2,验证输入后工具提示不会消失
【发布时间】:2016-11-17 07:10:18
【问题描述】:

验证输入后工具提示没有消失,它仍然显示。

我的代码如下,请帮助我找出在填写或验证我的输入后如何删除它。

$('#signupForm').validate({
            rules: {
              username: {
                required: true,
                minlength: 3
              },
              phone:{
                tel: true,
                required: true
              },
              message: {
                required: true,
                minlength:2
              },
              email: {
                required: true,
                email: true
              },
              captcha: {
                required: true,
                minlength: 5
              }
            },
            errorPlacement: function (error, element) {
                    flipIt = $(element).parents('div.left').length > 0,
                    position = {
                        at: 'center center',
                        my: 'top top'
                    },
                    offset = flipIt ? 6 : 35;
                $(element).filter(':not(.valid)').qtip({ 
                    overwrite: false,
                    content: error,
                    position: position,
                    show: {
                        event: false,
                        ready: true
                    },
                    hide: false,
                    style: { 
                        classes: 'ui-tooltip-dark ui-tooltip-shadow',
                        tip: {
                            corner: true,
                            offset: offset
                        }
                    }
                }).qtip('option', 'content.text', error);
            } ,
            submitHandler: function (form) {
                  $(".contact-button").val("Please Wait...");
                  $(".contact-button").prop('disabled', true);
                  $.ajax({
                    type: "POST",
                    url: "ajax/contact_page.php",
                    data: 'username='+$("#username").val()+'&email='+$("#email").val()+'&phone='+$("#phone").val()+'&message='+$("#message").val()+'&captcha='+$("#captcha").val(),
                    timeout: 3000,
                    success:function(data){
                      $("#mail-status").html(data);
                      $("#signupForm").find("input, textarea").val("");
                      $(".contact-button").val("Sent");
                      setTimeout(function () { 
                          $('#signupForm').find('.valid').qtip('destroy');
                      }, 1);
                      refreshCaptcha();
                      setTimeout(function() {
                      $(".contact-button").prop('disabled', false);
                      $("#mail-status").text("");
                      $(".contact-button").val('Click to Send'); 
                      }, 10000);
                    },
                    error: function() {alert('failed');}
                  });
            }
        }); 

每当我尝试填写输入时,它都会将错误消息显示为工具提示,但如果我填写正确(有效),它仍会出现在“提示”上。 我该如何解决?

【问题讨论】:

    标签: jquery ajax validation qtip2 qtip


    【解决方案1】:

    目前是它的

    hide: false 
    

    改成:

    hide: { when: { event: 'mousemove' }, 
               delay: 2000, 
               effect: function() { $(this).qtip("destroy"); }
             }
    

    【讨论】:

    • 它正在工作......但是还有另一个问题,它破坏了工具提示消息但仍然显示提示框(空框)
    • 尝试完全删除 hide 属性本身。你能在 jsfiddle/jsbin 中复制并给出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多