自动对焦属性在 Firefox 中因显示状态更改而不起作用
autofocus attribute not working in Firefox on display state change
我正在尝试向表单添加自动焦点。我让它在 Chrome 中工作,但无法让它在 Firefox 中使用以下代码工作。我认为原因可能是它需要只是autofocus
而不是autofocus="autofocus"
。我假设这一点是正确的吗?如果是这样,有什么方法可以添加它吗?我正在使用一个名为 SilverStripe 的框架,并且无法直接访问编辑输入字段,因为它是动态完成的,因此很可能需要通过 JavaScript 来完成。
<input type="text" name="Search" class="form-control search-form" id="TemplateSearchForm_SearchForm_Search" placeholder="Search..." autofocus="autofocus">
注意我最初隐藏输入框并通过添加类在单击图标时显示:
jQuery('.search').click(function () {
if(jQuery('.search-btn').hasClass('fa-search')){
jQuery('.search-open').fadeIn(500);
} else {
jQuery('.search-open').fadeOut(500);
}
});
我在HTML规范中找不到任何内容来验证Chrome表现出的autofocus
行为。下面是有关此行为的规范的摘录。
从 4.10.19.7 自动对焦窗体控件:自动对焦属性:
将指定了自动对焦属性的元素插入到文档中时,用户代理应运行以下步骤:
[...]
注意:这将处理文档加载期间的自动对焦。
它没有提到在显示状态更改时应用此行为的任何内容(就像 Chrome 显然所做的那样),仅在元素首次插入 DOM 时。这实际上似乎是Chrome中的一个错误,因为Firefox遵循HTML规范。
而不是使用 autofocus
属性,您必须通过 JavaScript 触发焦点。
你可以使用 JavaScript 自动关注任何元素,autofocus='yes'
$('[autofocus="yes"], [autofocus="autofocus"], [autofocus="true"]').focus();
理论上,这应该针对任何autofocus
设置为true
、yes
或autofocus
的元素,并专注于它们。
相关文章:
- 使用按钮和媒体查询切换显示状态
- 显示服务工作者状态的消息
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 如何在状态输入ui路由器时立即显示模板,然后当承诺被解决时显示数据
- 在弹出窗口中显示状态
- 如何在 jquery 中的速率按钮下方显示消息状态
- 使用codehelper.io显示基于IP位置的状态缩写
- 在表重新加载后,使用setInterval保持表的显示-隐藏状态
- 如何使单选按钮在选择一个选项(CSS)后显示为选中状态
- 使选项卡处于活动/非活动状态未显示正确的数据
- 基于单选按钮状态的角度JS高亮显示行
- 如何在返回后将状态保持为突出显示JQuery树视图的选定节点
- 在高图表中显示一个状态的总时间之和
- Jquery根据复选框状态显示/隐藏
- Twitch流状态显示在线.当用户离线时
- 根据状态显示和隐藏元素
- 在ReactJS中根据身份验证状态显示元素
- 如何根据对象的状态显示类
- 如何在Ember.js中使用错误子状态显示整页错误
- 如何根据状态显示控制台.log