Html 停止<;选择>;从跳跃到信件印刷 A. B C D E

Html 停止<;选择>;从跳跃到信件印刷 A. B C D E,html,Html,当然,当我按下a、b、c、d或e时,会跳转到第一个字母为的选项。我需要禁用它,最好不要通过Javascript(不是必需的) 真的没有办法关闭这个按键跳转到字母选项吗 谢谢 如果没有JavaScript,就无法完成此操作 使用JavaScript,您需要为keypress事件添加事件处理程序,以防止默认行为并停止传播 使用jQuery: <select size="5"> <option>a</option> <option>b</o

当然,当我按下a、b、c、d或e时,会跳转到第一个字母为的选项。我需要禁用它,最好不要通过Javascript(不是必需的)

真的没有办法关闭这个按键跳转到字母选项吗


谢谢

如果没有JavaScript,就无法完成此操作

使用JavaScript,您需要为
keypress
事件添加事件处理程序,以防止默认行为并停止传播

使用jQuery:

<select size="5">
  <option>a</option>
  <option>b</option>
  <option>c</option>
  <option>d</option>
  <option>e</option>
</select>
请注意,
$(“选择”)
将选择您的所有选择输入,最后您将为所有选择输入添加此
按键

没有jQuery:

$("select").on("keypress", function (event) {
  event.preventDefault();
  event.stopPropagation();
});

A.
B
C
D
E
var select=document.getElementById('mySelect');
select.addEventListener(“按键”,功能(事件){
event.preventDefault();
event.stopPropagation();
});
工作小提琴:


稍后编辑:有一种解决方案可以在不使用JavaScript的情况下实现这一点。请参见下面Lee Kowalkowski的回答。

如果没有JavaScript,您将无法完成此操作

使用JavaScript,您需要为
keypress
事件添加事件处理程序,以防止默认行为并停止传播

使用jQuery:

<select size="5">
  <option>a</option>
  <option>b</option>
  <option>c</option>
  <option>d</option>
  <option>e</option>
</select>
请注意,
$(“选择”)
将选择您的所有选择输入,最后您将为所有选择输入添加此
按键

没有jQuery:

$("select").on("keypress", function (event) {
  event.preventDefault();
  event.stopPropagation();
});

A.
B
C
D
E
var select=document.getElementById('mySelect');
select.addEventListener(“按键”,功能(事件){
event.preventDefault();
event.stopPropagation();
});
工作小提琴:

稍后编辑:有一种解决方案可以在不使用JavaScript的情况下实现这一点。请参见下面Lee Kowalkowski的回复。

来源:

否决票 接受

有人给我留下了正确的答案,然后出于某种原因删除了它,所以它是:

<select id="mySelect" size="5">
  <option>a</option>
  <option>b</option>
  <option>c</option>
  <option>d</option>
  <option>e</option>
</select>

var select = document.getElementById('mySelect');
select.addEventListener ("keypress", function (event) {
  event.preventDefault();
  event.stopPropagation();
});

函数IgnoreAlpha(e)
{
如果(!e)
{
e=窗口事件;
}
如果(e.keyCode>=65&&e.keyCode来源:

否决票 接受

有人给我留下了正确的答案,然后出于某种原因删除了它,所以它是:

<select id="mySelect" size="5">
  <option>a</option>
  <option>b</option>
  <option>c</option>
  <option>d</option>
  <option>e</option>
</select>

var select = document.getElementById('mySelect');
select.addEventListener ("keypress", function (event) {
  event.preventDefault();
  event.stopPropagation();
});

函数IgnoreAlpha(e)
{
如果(!e)
{
e=窗口事件;
}

如果(e.keyCode>=65&&e.keyCode这是对@razvan dimitru建议的改编,但将JS保持在最低限度。在某种程度上,此解决方案只需要标记:


A.
B
C
D
E

这是对@razvan dimitru建议的改编,但将JS保持在最低限度。在某种程度上,此解决方案只需要标记:


A.
B
C
D
E
您可以在不使用JavaScript的情况下执行

在每个选项前面加一个字符

选择:
&zwnj;a
&zwnj;b
&zwnj;c
&zwnj;d
&zwnj;e
您可以在不使用JavaScript的情况下执行

在每个选项前面加一个字符

选择:
&zwnj;a
&zwnj;b
&zwnj;c
&zwnj;d
&zwnj;e

没有JavaScript不行。我认为在操作系统层面上,它内置于控件中。有了JavaScript,它将如何工作?添加一个
keydown
处理程序,如果键是字母,则阻止默认操作?抱歉,我没有时间写答案,但这就是我想到的。我想不出什么好的理由阻止用户使用用键盘选择元素。你想解决的实际问题是什么?不是没有JavaScript,不是。它内置在控件中,我认为是在操作系统级别。有了JavaScript,它将如何工作?添加一个
keydown
处理程序,如果键是字母,则阻止默认操作?抱歉,我没有时间写答案,但这就是问题所在我想到了。我想不出什么好的理由来阻止用户在键盘上使用select元素。您试图解决的实际问题是什么?我不认为取消keyup事件会取消keypress事件。我仍然可以使用键盘更改此select值。此外,这会禁用所有需要更改的键盘事件在我的用例中使用。谢谢!我不认为取消keyup事件会取消keypress事件。我仍然可以使用键盘来更改此选择值。这也会禁用所有需要在我的用例中使用的键盘事件。不过谢谢!谢谢!我最终使用JS来完成此操作。@LeeKowalkowski的解决方案相当不错y但不适用于我的特定应用程序。谢谢!我最终使用了JS来完成此操作。@LeeKowalkowski的解决方案非常漂亮,但不适用于我的特定应用程序。漂亮!以前从未见过。漂亮!以前从未见过。