希望这是这个问题的正确堆栈。
我的工具提示与错误消息有问题。我的工具提示设置为在每个文本框中的“焦点”上显示,如果输入的数据不符合标准,当您在井中标记时,它们会出现并消失。问题是弹出错误信息,然后焦点转移到下一个框,关闭错误信息才能读取。焦点会自动切换回错误输入的框,但随后会出现原始工具提示。
如果字段不正确,有没有办法取消“更改焦点”或“模糊”功能,设置显示错误消息的时间或以某种方式延迟“模糊”,以便至少保留错误消息5-10秒?
感谢您的时间和考虑 温斯顿
答案 0 :(得分:0)
您可以使用setTimeout
在触发blur
之前经过5秒后设置一个变量。如果不是这种情况,则可以在setTimeout处理程序中隐藏消息。
var focusAtLeastFiveSecondsAgo;
$(thing).focus(function(){
showMessage();
focusAtLeastFiveSecondsAgo = false;
setTimeout(function(){
focusAtLeastFiveSecondsAgo = true;
if (!$(thing).is(":focus")){
hideMessage();
}
}, 5000);
});
$(thing).blur(function(){
if (focusAtLeastFiveSecondsAgo){
hideMessage();
}
});
请注意,我们检查元素是否仍然集中在setTimeout处理程序中。如果不是模糊已被触发但被忽略,因为该消息仅被显示。
为了代码可读性,您可能需要为此创建一个jQuery插件来存储变量并处理最小延迟。