Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 覆盖中的自动对焦表单字段_Jquery_Html_Overlay - Fatal编程技术网

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">

这可能真的很简单,但经过几个小时的搜索,我一直无法找到答案

我需要自动聚焦在覆盖图中的一个表单字段上,单击按钮即可打开该字段

我使用的是简单的jQuery覆盖代码

$(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();
        }
    });
});