Input 单击选项卡后设置输入焦点

Input 单击选项卡后设置输入焦点,input,tabs,focus,Input,Tabs,Focus,当一个页面有一个包含多个选项卡的搜索框时,始终选择其中一个选项卡;选择默认选项卡或用户已更改选项卡。在这两种情况下,所选选项卡的搜索输入框应始终具有键盘焦点,以便用户可以开始键入他们的关键字 示例:上的搜索框 你知道当点击一个不同的标签时,我怎样才能使焦点在输入框中吗?我让它在第一个选项卡上工作,但当我单击另一个选项卡时,焦点丢失 我正在使用的脚本: <script type="text/javascript" language="JavaScript"> document.

当一个页面有一个包含多个选项卡的搜索框时,始终选择其中一个选项卡;选择默认选项卡或用户已更改选项卡。在这两种情况下,所选选项卡的搜索输入框应始终具有键盘焦点,以便用户可以开始键入他们的关键字

示例:上的搜索框

你知道当点击一个不同的标签时,我怎样才能使焦点在输入框中吗?我让它在第一个选项卡上工作,但当我单击另一个选项卡时,焦点丢失

我正在使用的脚本:

<script type="text/javascript" language="JavaScript">
    document.forms[''].elements[''].focus();
</script>

document.forms[“”].elements[“”].focus();
您的代码片段 要在某个元素上设置焦点,必须指定哪个元素应该接收焦点。您的代码段中缺少此规范:

document.forms[''].elements[''].focus();
如果需要,可以使用以下行:
document.getElementById(“DuringSearch”).focus()
DuringSearch
是应该接收焦点的输入元素的id

需要解决的问题是根据单击的选项卡更改id。 有几种方法可以实现这一点。在上一篇文章中,使用了一个名为“数据”的属性选项卡

要将事件处理程序附加到单击选项卡,可以在document.ready上执行以下操作(使用jQuery):

//  add event handler for click on tab
$("#tabs li").click(function () {                    
    loadTabs(this);
    setFocusOnInput(this);
    return false;
});
如果单击选项卡,附加的事件将激发并执行两个函数:loadTabs和setFocusOnInput

要设置焦点,您需要知道该输入框的id。在我的exmaple中,我使用的是属性
数据选项卡

<li data-tab="Before">
    <a href="#Before">Before</a>
</li>
请参阅有关的更多说明


你能详细说明你想知道什么吗。您想知道一般情况下如何连接,还是在特定情况下如何连接?

lib.umd.edu页面只是一个示例,还是您正在使用的网站?在JavaScriptt中,您没有指定哪个元素应该接收焦点。您能够解决这个问题吗?你需要更多的解释吗?
$(document).ready(function () {

        setTimeout(function () {

 // focus on the txtenclude text area first visible and enabled input field or textarea
        $(":input:visible:enabled").each(function () {

            if ($(this).is('textarea')) {
                $(this).focus();
                return false;
            }

        });

    }, 1000);
$(document).ready(function () {

        setTimeout(function () {

 // focus on the txtenclude text area first visible and enabled input field or textarea
        $(":input:visible:enabled").each(function () {

            if ($(this).is('textarea')) {
                $(this).focus();
                return false;
            }

        });

    }, 1000);