【问题标题】:form textbox - keep focus during page load表单文本框 - 在页面加载期间保持焦点
【发布时间】:2013-01-09 15:21:31
【问题描述】:

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

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

【问题讨论】:

  • 可以展示一些 HTML、JS 或互联网上的页面吗?
  • “我需要找到什么东西在偷走焦点吗?”显然。 “有没有办法防止这种情况发生?”找到原因后是的。
  • 我只是想知道是否有一些代码可以强制焦点停留在输入中,但如果没有,我会一点一点地注释掉所有内容,直到找到为止。它唯一发生的IE。我说过多少次了!
  • kirkleescollege.ac.uk 温柔点:)
  • 看起来只是课程搜索框上的 js 导致了 IE 中的问题。我将尝试使用 JQuery 插件,这些插件比我做得更好。

标签: forms textbox focus


【解决方案1】:

听起来您的一个脚本正在设置一些内容以专注于负载。

将其放在 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();

clearable 函数只有在用户使用该字段时才需要,所以让我们将其设为上下文,即只有当它获得焦点时,才使该函数可用。这应该可以阻止顽皮的插件窃取焦点。

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

通常最好根据上下文进行编写 - 您会发现页面上有数十个绑定和在 onload 上设置的“实时”事件,但它们很少使用。如果在用户执行某项操作或您可以告诉用户将要执行某项操作之前不需要发生某些事情,请按此方式编写。

【讨论】:

    猜你喜欢
    • 2020-03-18
    • 2011-11-13
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2011-02-12
    • 2017-09-20
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多