Jquery 覆盖中的自动对焦表单字段
这可能真的很简单,但经过几个小时的搜索,我一直无法找到答案 我需要自动聚焦在覆盖图中的一个表单字段上,单击按钮即可打开该字段 我使用的是简单的jQuery覆盖代码Jquery 覆盖中的自动对焦表单字段,jquery,html,overlay,Jquery,Html,Overlay,这可能真的很简单,但经过几个小时的搜索,我一直无法找到答案 我需要自动聚焦在覆盖图中的一个表单字段上,单击按钮即可打开该字段 我使用的是简单的jQuery覆盖代码 $(function() { $("a[rel]").overlay(); }); 按钮的代码为: <a rel="#popup">Button text</a> 按钮文本 (简化)覆盖的HTML代码如下: <div class="simple-overlay" id="popup">
$(function() {
$("a[rel]").overlay();
});
按钮的代码为:
<a rel="#popup">Button text</a>
按钮文本
(简化)覆盖的HTML代码如下:
<div class="simple-overlay" id="popup">
<form method="post" class="form-class" action="form-action" >
<input class="text" id="email-field" type="text" name="email" value="" />
<input name="submit" class="submit" type="submit" value="Submit" tabindex="501" />
</form>
</div>
提前感谢。尝试将
自动对焦
属性添加到输入字段:
<input class="text" id="email-field" type="text" name="email" value="" autofocus />
这个答案是根据下面的好评论(@Spokey)更新的
在就绪状态下启动覆盖插件
$(function () {
$("a[rel]").overlay({ mask: '#000000', onLoad: function(){ $('#email-field').focus();} });
});
并保持
标记干净,无onclick事件
这应该是解决问题的方法。感谢@Spokey,他找到了解决方案 我把它贴在下面,以防有人在寻找答案 您还可以在此处查看一个实例: .register button是分配给打开覆盖的按钮的div类
#email字段是分配给覆盖内表单字段的div id,当覆盖打开时,表单字段会自动聚焦。为了清楚起见,我在
$(“a[rel]”)之后添加了它。覆盖()代码>代码。。。这是正确的位置吗?@user2245490好的,您需要在确定输入可见后立即添加它。@user2245490.overlay加载一个页面,然后显示它,对吗?因此,只有在加载完成后才有输入元素。如果加载是异步的(正如我想象的,从未使用过.overlay),那么在.overlay调用之后就没有准备好元素。因此,显示覆盖时必须触发一个事件。在这种情况下,您应该调用.focus(),我认为是这样的:它显示了一个默认隐藏的div元素。你知道如何让它在正确的时间启动吗?哦,如果div是隐藏的,它只显示它,那么它必须在.overlay()调用之后立即工作:(您有测试url来尝试吗?
$(function () {
$(".register-button").overlay({
mask: '#000000',
onLoad: function () {
$('#email-field').focus();
}
});
});