jQuery Chosen将事件绑定到键盘

jQuery Chosen bind events to keyboard

本文关键字:键盘 绑定 事件 Chosen jQuery      更新时间:2023-09-26

这是我的HTML:的结构

<select class="chosen-select" data-placeholder="Choose an color:">
    <option value="1">red</option>
    <option value="2">blue</option>
    <option value="3">green</option>
    <option value="4">black</option>
</select>

这里是javascript部分,它显示了绑定点击事件是多么容易:

    $(document).on('click', '.active-result', function () {
        var color = $(this).text()
    })
    // do something with color

我尝试过绑定向上/向下键和按键,都很成功。但是:以下是我的用例:我需要将事件绑定到ENTER键,我已经尝试将事件绑定至e.which == 13并阻止默认值,但没有成功。此外,我还必须提到,这段代码应用于引导模式。

这将为您提供颜色,并在按下Enter键时更改下拉列表的值。

$(document).on('keydown', '.chosen-select', function (e) {
    if (e.which == 13 )
    {  
       var selectedTarget = $(this).find("option:selected");
        alert($(selectedTarget).text());
        $(this).val($(selectedTarget).val());       
    }    
});

http://jsfiddle.net/ghjhjz03/4/

尝试附加jQuery:的keydown事件

$(document).on('keydown', '.chosen-select', function (event) {
    if ( event.which == 13 ) {      
        event.preventDefault();
        var color = $(this).text();
        // do something with color
    }    
})

我能够解决将事件绑定到所选()的问题:

$(".chosen-select").chosen().keydown ( function (e) {
    if (e.which == 13 )
    {
        var color = $(this).val()
    }
});