如何停止打开或更改选择菜单窗体

How to stop a select menu form opening or changing?

本文关键字:选择 菜单 窗体 何停止      更新时间:2023-09-26
$('#selectmenu').on('keyup focus mousedown', function(e) {
      e.preventDefault();
});

但是当通过按 Tab 选择它时,我可以通过按向上和向下键来更改值。如何停止它?

阻止 Tab 键。

$('/*The Previous Input */').on('keydown', function(e) {
      if (e.keyCode == 9) {
            e.preventDefault();
      }
});

我没有你的HTML,所以我无法测试或集成代码。


您也可以使用disabled="disabled">,我认为这是一个更好的解决方案。

您可以使用 jQuery 的off()unbind()方法:

<select id="dropDown" name="dropDown" style="margin-top: 5px; width: 150px;">
           <option value="select">Select </option>
              <option value="1">1</option>
              <option value="2">2</option>
           <option value="All">All </option>
</select>
<button id="stopChange" >Stop</button>
<button id="StartChange" >Start</button>

j查询代码:

$("#stopChange").click(function () {
        $("#parSelCategor").unbind("change");
    });
    $("#StartChange").click(function () {
        $("#parSelCategor").bind("change");
    });

您可以收听更全局的事件,例如"onchange",并在事件触发时将值更改回前一个值。

禁用选择也可能有效。

编辑:"键控"似乎也是一个好主意。

您可以更改选择框的tabindex

$('#selectmenu').attr('tabindex', -1).on('keyup focus mousedown', function (e) {
    e.preventDefault();
});

或者最好的方法是禁用控件

$('#selectmenu').attr("disabled", true);

演示

这是一个解决方案,如果某些变量(stopChange(为真,则简单地强制选择保持不变。

JS (jQuery(:

var stopChange = true;
var opt = $('option:selected');
$('#selectmenu').on('change', function () {
    if (stopChange) {
        opt.attr('selected', true);
    }
});

这是一个小提琴。