1

在我的主页上,我有一个带有搜索文本框的表单。如果您在页面仍在加载时单击输入并开始输入,则某些内容会窃取焦点,因此您必须在输入文本框中单击返回。

有没有办法防止这种情况发生?我需要找到什么在偷走焦点吗?

4

1 回答 1

0

听起来你的一个脚本正在设置一些专注于负载的东西。

把它放在 HTML 的底部,就在</body>. 您的控制台将向您显示获得焦点的项目的 HTML。

<script>
$(window).load(function() { // NB not document ready
    console.log($(':focus')[0]);
    // alert($(':focus')[0]); // if you don't know what console is
});
</script>

希望元素中有一个 ID,您可以搜索您的脚本,或者有足够的线索让您找到被告知要关注负载的内容。然后您可以删除/更改该行。

附录

原来这是罪魁祸首

$('#f input#livesearch').clearableTextField();

仅当用户使用该字段时才需要该可清除功能,因此让我们使其具有上下文关系,即仅当它获得焦点时,才使该功能可用。这应该会阻止顽皮的插件窃取焦点。

$('#f input#livesearch').on('focus', function(){
    $(this).clearableTextField();
});

通常最好根据上下文编写——你会发现页面有几十个绑定和在 onload 上设置的“实时”事件,但它们很少使用。如果在用户做某事或您可以告诉用户将要做某事之前不需要发生某些事情,那么就这样写。

于 2013-01-09T17:22:07.443 回答