0

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

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

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

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

4

1 回答 1

0

在触发前 5 秒后,您可以使用setTimeout设置变量。blur如果不是这种情况,您可以在 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 插件来存储变量并处理最小延迟。

于 2013-02-06T17:38:57.790 回答