jQuery 选择绑定事件到键盘

jQuery Chosen bind events to keyboard

这是我的 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

我已尝试成功绑定到键 up/down 和按键。但 : 这是我的用例: 我需要将事件绑定到 ENTER 键,我尝试将事件绑定到 e.which == 13 并防止默认设置但没有成功。另外我必须提到这段代码应用于 bootstrap Modal.

尝试附加 jQuery 的按键事件:

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

        // do something with color
    }    
})

这将为您提供颜色并更改按键时下拉菜单的值 - 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/

我能够通过将事件绑定到 chosen( ) 来解决问题:

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