jQuery事件键盘:输入键

时间:2013-01-28 07:24:33

标签: javascript jquery html

我有一个组合框,它有值,我想让用户在按下Enter键时选择值。

  1. 用户可以浏览Arrow密钥
  2. 当用户输入Enter键时选择值。
  3. 我做了这个:

    $('#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 个答案:

答案 0 :(得分:8)

 <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>

答案 1 :(得分: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();
    });

答案 2 :(得分: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();
    });

答案 3 :(得分:0)

例如:

<!html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>

<div class="form-group">
    <label for="exampleFormControlSelect1">Bodega</label>
    <select class="form-control" id="exampleFormControlSelect1">
      <option value="despacho">Despacho</option>
      <option value="ventas">Ventas</option>
    </select>
</div>

 <script>
     $('#exampleFormControlSelect1').on('keypress',function(e){
         var p = e.which;
         if(p==13){
             alert('enter was pressed');
         }
     });
 </script>