无法获得工具提示消失

时间:2017-02-24 14:07:19

标签: javascript jquery tooltip

在表单中,我有一个State下拉列表和一个Zip Code文本框。客户已指定要检查以确保邮政编码与州匹配,如果没有,则弹出邮件并阻止提交表单。

在更改zip或状态之后,我在服务器上调用ajax函数以确保邮政编码处于状态内。如果没有,我会在邮政编码框上弹出一个工具提示,上面写着“邮政编码不在选定状态”。因此,除非存在不匹配,否则不会出现工具提示,除非zip与状态不匹配,否则我不会添加它。这一切都运作良好。

然后,如果邮政编码发生变化,并且匹配,我想摆脱工具提示。这是我无法工作的部分。无论我尝试什么,即使在拉链与状态匹配之后,那个讨厌的工具提示仍然存在。

这是客户端方法:

function CheckZip() {
    var zip = $("#ZipCode").val();
    var zipLength = zip.length;
    var state = $("#StateCode").val();

    if (zipLength === 5) {
        $.getJSON("/Home/CheckZip", { zipCode: zip, stateCode: state },
        function (data) {
            if (data == "true") {
                $('#ZipCode').tooltip('disable');
                $('#ZipCode').tooltip().mouseover();
            }
            if (data == "false") {
                $('#ZipCode').attr('data-toggle', 'tooltip');
                $('#ZipCode').attr('data-placement', 'top');
                $('#ZipCode').attr('title', 'Zip code not in selected state.');
                $('#ZipCode').tooltip().mouseover();
                DisableSubmitButton();
            }
            if (data == "error") {
                // todo
            }
        });
    }
    else {
        DisableSubmitButton();
    }
}

这似乎不是使工具提示消失的正确组合。

$('#ZipCode').tooltip('disable');
$('#ZipCode').tooltip().mouseover();

我还试图删除所有属性,与if (data == "false")中完成的内容相反。这也不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

尝试一次:

$( “#邮编”)OFF( '鼠标悬停',RF);

答案 1 :(得分:1)

正如我在评论中问你是否使用了bootstrap,我为你准备好了。要隐藏工具提示,您必须将disable更改为hide。您还必须删除隐藏事件下方的行,如下所示:

if (data == "true") {
    $('#ZipCode').tooltip('hide');
}

可以找到引导工具提示的文档here

我希望这会有所帮助!

答案 2 :(得分:0)

我最终做的只是创建我自己的div,使用CSS,将其悬停在Zip文本框上。我可以隐藏它并随时显示它。这非常有效。在Stack Overflow上找到一个线程,告诉我如何做css:

Relatively position an element without it taking up space in document flow