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

时间:2014-09-11 06:47:18

标签: javascript jquery

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

但是当按Tab键选择它时,我可以通过按下&关键。如何阻止它?

5 个答案:

答案 0 :(得分:1)

阻止标签键。

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

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


你也可以使用禁用=“禁用”,我认为这是一个更好的解决方案。

答案 1 :(得分:1)

您使用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>

jQuery代码:

$("#stopChange").click(function () {

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

答案 2 :(得分:0)

您可能会听到更像“onchange”的全局事件,并在事件触发时将值更改回上一个事件。

禁用选择也可能有效。

编辑:'keydown'似乎也是一个好主意。

答案 3 :(得分:0)

您可以更改选择框的tabindex

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

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

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

Demo

答案 4 :(得分:0)

如果某个变量(stopChange)为真,这里的解决方案只会强制选择保持不变。

JS(jQuery):

var stopChange = true;
var opt = $('option:selected');

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

这是fiddle