Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
我想使用JavaScript来选择一个输入,当我用tab键关注一个按钮元素并按下“Enter”键时_Javascript_Html_Css_Tabs_Tabindex - Fatal编程技术网

我想使用JavaScript来选择一个输入,当我用tab键关注一个按钮元素并按下“Enter”键时

我想使用JavaScript来选择一个输入,当我用tab键关注一个按钮元素并按下“Enter”键时,javascript,html,css,tabs,tabindex,Javascript,Html,Css,Tabs,Tabindex,这里的新开发人员正在尝试熟悉JavaScript/jQuery 我目前正在开发一个带有选项卡的页面,它可以根据选择的选项卡按钮来洗牌页面上的内容。这些选项卡基于以下代码: 求职者 雇用者 我已经从中获得了我所需要的所有功能,但突出的问题是我需要能够访问该功能。将tab index=0添加到按钮中很容易,这样就可以通过选项卡访问按钮,但问题是,输入是实际激活功能所需的tab索引和输入。我想这样做,我可以使用JS,这样当我专注于按钮并按下enter键时,相应的按钮被激活。我假设它将是使用按键功能的东

这里的新开发人员正在尝试熟悉JavaScript/jQuery

我目前正在开发一个带有选项卡的页面,它可以根据选择的选项卡按钮来洗牌页面上的内容。这些选项卡基于以下代码:

求职者 雇用者 我已经从中获得了我所需要的所有功能,但突出的问题是我需要能够访问该功能。将tab index=0添加到按钮中很容易,这样就可以通过选项卡访问按钮,但问题是,输入是实际激活功能所需的tab索引和输入。我想这样做,我可以使用JS,这样当我专注于按钮并按下enter键时,相应的按钮被激活。我假设它将是使用按键功能的东西。我正在重新调整一些代码的用途,以便为我正在从事的另一个项目工作,但我想它看起来会像:

var input=document.getElementByIdlist1 input.addEventListenerkeydown,functionevent{ 如果event.key=='Enter'{ //触发输入的单击 document.getElementByIdtab1.click; } };
看起来这应该是一个相对简单的解决方案,但我得到了各种不同的错误。感谢您的指导

我无法在codepen示例中使用tabbing,因此很难测试解决方案。但你似乎走对了方向,我写下了:

var input = document.getElementsByTagName("input");
for (var i = 0; i < input.length; i++) {
    input[i].addEventListener("keydown", function(event) {
        if (event.key == 'Enter') {
            // Trigger the click for the input 
            var clickEvent = new MouseEvent("click", {
                "view": window,
                "bubbles": true,
                "cancelable": false
            });
    
            document.getElementById("tab" + i).dispatchEvent(clickEvent);
        }
    });
}

因此,我的主要问题是我向错误的HTML元素添加了ID。调整HTML后,下面的代码可以工作。接下来,我将研究如何正确设置循环,以便减少函数的大小

求职者 雇用者 document.addEventListener“DOMContentLoaded”函数{ const list1=document.getElementByIdslide1; const output1=document.querySelectortab1; const list2=document.getElementByIdslide2; const output2=document.querySelectortab2; 列表1.addEventListenerkeydown,functionevent{ 如果event.key=='Enter'{ //触发输入的单击 output1.click; } }; 列表2.addEventListenerkeydown,functionevent{ 如果event.key=='Enter'{ //触发输入的单击 output2.click; } }; };
啊,你的方法使我不必重复我的代码,代码片段将自动单击相应的输入。太好了!不幸的是,点击事件仍然没有发生。看起来我们需要以不同的方式触发编程点击-请参阅-更新我的回答Enter键的键代码是13-您尝试过吗?此外,您是否考虑过使用鼠标悬停功能-用户可能并不总是使用制表符。。。