在表单中,我有一个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")
中完成的内容相反。这也不起作用。
有什么想法吗?
答案 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