Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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 禁止Enter在列表框中选择单个项目_Javascript_Javascript Events - Fatal编程技术网

Javascript 禁止Enter在列表框中选择单个项目

Javascript 禁止Enter在列表框中选择单个项目,javascript,javascript-events,Javascript,Javascript Events,我有一个多选列表框。我希望能够选择一些项目,并通过按Enter键对选择进行操作。我遇到的问题是,当我按Enter键时,光标处的当前项成为唯一选中的项。其他项被取消选择,因此“我的功能”仅作用于单个项。 如何防止Enter键选择项目 我正在javascript中设置onkeypress函数,如下所示。doListKeyPress检查回车键并对其进行操作 select.onkeypress = function(e) { doListKeyPress(e, "myListName"); }; 添加

我有一个多选列表框。我希望能够选择一些项目,并通过按Enter键对选择进行操作。我遇到的问题是,当我按Enter键时,光标处的当前项成为唯一选中的项。其他项被取消选择,因此“我的功能”仅作用于单个项。 如何防止Enter键选择项目

我正在javascript中设置onkeypress函数,如下所示。doListKeyPress检查回车键并对其进行操作

select.onkeypress = function(e) { doListKeyPress(e, "myListName"); };
添加此事件:

select.onkeydown = function(e) { if(e.keyCode == 13) select.blur(); };
由于
keydown
出现在
keypress
之前,它会将焦点设置为远离列表框,因此默认的浏览器
Enter
行为被“绕过”

免责声明:
此答案不允许按Enter键选择项目。不过,这可以通过进一步的实现来完成。

@seppy:multi-select用户的常见行为是通过ctrl+click或ctrl空格键<代码>回车键对我来说很奇怪。谢谢你的指点。onkeydown功能可成功阻止Enter键选择单个选项。但是,由于按下键时选择模糊,onkeypress事件永远不会被触发,因此我必须创建document.onkeypress函数来处理它,如下所示。document.onkeypress=函数(e){if(e.keyCode==13){doListKeyPress(e,select);}@那么你最终得到了你想要的?