Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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
HTML表单-当焦点位于选择列表上时,使用enter键触发表单提交不起作用_Html_Forms_Submit - Fatal编程技术网

HTML表单-当焦点位于选择列表上时,使用enter键触发表单提交不起作用

HTML表单-当焦点位于选择列表上时,使用enter键触发表单提交不起作用,html,forms,submit,Html,Forms,Submit,我被上述问题难住了。我有一个简单的表单,如下所示,带有文本输入、选择列表和提交按钮。当焦点在文本输入上,我点击回车键时,表单提交。如果焦点在选择列表上,则提交不会触发。无论哪个字段有焦点,我都希望提交表单 <html> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server">

我被上述问题难住了。我有一个简单的表单,如下所示,带有文本输入、选择列表和提交按钮。当焦点在文本输入上,我点击回车键时,表单提交。如果焦点在选择列表上,则提交不会触发。无论哪个字段有焦点,我都希望提交表单

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id='text1'/>
        <select>
            <option value="volvo">Volvo</option>
            <option value="saab">Saab</option>
            <option value="mercedes">Mercedes</option>
            <option value="audi">Audi</option>
        </select>
        <input type='submit' onclick='alert("you submitted the form")'/>
    </div>
    </form>
</body>
</html>

沃尔沃汽车
萨博
梅赛德斯
奥迪

默认情况下,firefox会这样做,因为ie需要某种类型的javascript函数,因为ie会将输入时提交绑定到输入。

使用enter选择选项是正常的浏览器行为

您可以做的是将侦听器附加到select元素的keyDown事件,并在用户按下enter时提交表单。 例如使用jQuery:

$('#your-select').keydown(function(e){  
  if (e.keyCode == 13) {
      $('#your-form').submit();
    } });

<>你应该考虑它打破了标准,会给用户用键盘导航带来问题。这是选择元素的标准行为。您可以点击制表器,然后进入。应该没那么难:)+1作为最后的评论。这是标准的浏览器行为,别管它。当在选择框中使用上/下箭头时,键盘用户需要使用Enter键来选择当前选项。是的,这完全适用于您使用Enter键选择值。那么…我如何测试select是否被扩展(不考虑标准行为)和关闭?让我的用户代表确信这是个坏主意