工具提示与错误消息

时间:2013-02-06 16:39:23

标签: javascript jquery tooltip

希望这是这个问题的正确堆栈。

我的工具提示与错误消息有问题。我的工具提示设置为在每个文本框中的“焦点”上显示,如果输入的数据不符合标准,当您在井中标记时,它们会出现并消失。问题是弹出错误信息,然后焦点转移到下一个框,关闭错误信息才能读取。焦点会自动切换回错误输入的框,但随后会出现原始工具提示。

如果字段不正确,有没有办法取消“更改焦点”或“模糊”功能,设置显示错误消息的时间或以某种方式延迟“模糊”,以便至少保留错误消息5-10秒?

感谢您的时间和考虑 温斯顿

1 个答案:

答案 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插件来存储变量并处理最小延迟。