【问题标题】:Keypress event on select2 textbox is not workingselect2 文本框上的按键事件不起作用
【发布时间】:2016-07-20 21:53:01
【问题描述】:

我有一个 select2 下拉菜单。

<select class="eselect2" type="text" id="qename" style="width: 390px;"> 

                    <option value="1">NY</option>
          <option value="2">MA</option>
          <option value="3">PA</option>
          <option value="4">CA</option>
                </select>

使用简单的javascript

$( document ).ready(function() {
    console.log( "ready!" );
    $(".eselect2").select2();
    $('.select2-search__field').on("keydown", function(e) {
                    console.log(e.keyCode); // nothing happens
            if (e.keyCode == 13) {
                }
       });
});

我有一个与输入字段上的按键相关的事件。它不会被触发,因为每次单击 select2 中的下拉箭头时,文本框都会被销毁并重新创建。 为了清楚起见,我附上了小提琴。 http://jsfiddle.net/sizekumar/ckfjzkhj/

【问题讨论】:

    标签: javascript jquery html keypress select2


    【解决方案1】:

    真正的 jQuery 按键事件不会在 input.select2-search__field 元素上触发。但是纯js事件可以。这段代码对我有用

    document.getElementsByClassName('select2-search__field')[0].onkeypress = function(evt) { console.log(evt); }
    

    【讨论】:

      【解决方案2】:

      编辑:这并不能解决问题。

      我不会将其称为重复,但我认为此答案直接适用:https://stackoverflow.com/a/30697173/5948237

      $('.select2-input').on("keydown", function(e) {
              if (e.keyCode == 13) {
                  }
      });
      

      【讨论】:

      • 这是我使用的代码,但它不起作用。在新的 select2 下拉列表中,没有具有类 select2-input 的元素,并且输入元素被销毁并动态创建。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多