“Keypress”事件无法正常工作,使用 jQuery 和 Select2

Posted

技术标签:

【中文标题】“Keypress”事件无法正常工作,使用 jQuery 和 Select2【英文标题】:"Keypress" event is not working correctly, using jQuery & Select2 【发布时间】:2015-08-22 05:01:14 【问题描述】:

我有一个论坛,我可以在其中更改要进入的选项卡的功能。当用户按下进入下一个输入字段时,获得焦点并以某种方式 iImanage 在focusin 事件上打开 select2 选择框,以便打开选择 2 框。

但是,当我选择值并在 select2 选择框中按 enter 时,它不会关闭并在 enter 键按下事件时保持打开状态,但它会关闭。当我将输入键事件更改为任何按键事件时,select2 会关闭并且工作正常,但我必须通过输入来做到这一点。

我想要什么: 当用户在 select2 搜索框中选择值并按下回车键时,它会关闭并焦点移动到下一个输入字段或任何字段。

到目前为止我做了什么。

$('.search-select').on("focusin",function(event) 
    $('#s2id_form-field-select-3').select2('open');
    event.preventDefault();  
);

Select2 输入键事件不起作用

$('.select2-input').on("keypress", function(e) 
            if (e.keyCode == 13) 
                $("#select2-drop-mask").click();
                $('#name').focus();
                e.preventDefault();   
                
       );

Select2 与任何有效的按键事件

$('.select2-input').on("keypress", function(event) 
                $("#select2-drop-mask").click();
                $('#name').focus();
                event.preventDefault();         
);

标记

 <select id="form-field-select-3" name="register_id" class="form-control search-select" required="required">
   <option value="">&nbsp;</option>
   <? $query=$this->dba->get_dropdown('register',array('id','name'));
      foreach($query as $key=>$value):
   ?>
   <option value="<?=$key?>"><?=$value; ?></option>
  <? endforeach;?>
</select>

先见谅,这是我第一次使用Select2。

【问题讨论】:

【参考方案1】:

我认为您正在寻找 keydown

$('.select2-input').on("keydown", function(e) 
            if (e.keyCode == 13) 
                $("#select2-drop-mask").click();
                $('#name').focus();
                e.preventDefault();   
                
       );

他们是little different。 在这种情况下,keypress 不会在您的字段中插入任​​何内容。

【讨论】:

完成了,但相信我,我已经尝试了大约 10 到 11 种方法,但我失败了,非常感谢你让我开心 在我的例子中,我需要的是“keyup”,所以我可以得到 .select2-input 的当前值 - keydown 给你的值减去用户当时输入的字符。跨度> 【参考方案2】:

为我工作

$(document).on('keyup keydown', 'input.select2-search__field', function(e)    

【讨论】:

以上是关于“Keypress”事件无法正常工作,使用 jQuery 和 Select2的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IE 中为按钮事件触发 Keypress 事件

网格中的 Keypress 或 keydown 事件处理

C#开发wince平台下的winform程序,textbox的keypress事件无法触发,本意是想限制textbox只能输入数字。

ASP.NET 可视化 Web 部件 + AJAX,无法正常工作

Winforms 中的 WPF 事件

keyup、keydown 和 keypress 事件在移动设备上不起作用