2

値を取得したコンボボックスがあり、Enterキーが押されたときにユーザーが値を選択できるようにしたい。

  1. Arrowユーザーはキーをナビゲートできます
  2. ユーザーがEnterキーを入力したときの値を選択します。

私はこれをしました:

$('#cmb_CIMtrek_DailyshipCo_CustomerName select').bind('keypress', function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
     if(code == 13) { //Enter keycode
       //Do something
         alert("Enter key Pressed");
     }
});

Enterしかし、キーを押してもアラートが出ません。

問題は何であり、それをどのように解決するのですか?

よろしくお願いします。

4

4 に答える 4

9
 <select>
    <option value="1">1</option>
    <option value="2">2</option>
 </select>     

 <script> 
 $('select').live('keypress',function(e){
     var p = e.which;
     if(p==13){
         alert('enter was pressed');
     }
 });
 </script>
于 2013-01-28T07:43:02.577 に答える
2

これを試してください

$('#cmb_CIMtrek_DailyshipCo_CustomerName select').keypress(function(event){

        var keycode = (event.keyCode ? event.keyCode : event.which);
        if(keycode == '13'){
            alert('You pressed a "enter" key in textbox');  
        }
        event.stopPropagation();
    });
于 2013-01-28T07:31:40.183 に答える
1

ユーザーがEnterキーを押したときにフォームを投稿したい場合は、デフォルトでこの動作を持つ送信ボタンを使用することもできます。

フォームを投稿したくないが送信ボタンがある場合、これはキーイベントをキャッチして伝播しない可能性があります。そのため、送信ボタンを削除してください。

イベントをオブジェクトに限定するには:

if (e.target == document.getElementById('element-id'))

またはjquery

if (this == $('#element-id').get(0))

コードは次のようになります。

$(document).bind('keypress', function(e) 
    {
    // Use 'this' or 'e.target' (whithout quotes)
    if (this == $('#cmb_CIMtrek_DailyshipCo_CustomerName select').get(0))
        {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13)
            { //Enter keycode
            //Do something
            alert("Enter key Pressed");
            }
        }
    // Stop the event from triggering anything else
    e.stopPropagation();
    });
于 2013-01-28T08:01:35.873 に答える