简体   繁体   中英

jQuery Event Keypress: Enter key

i have a combo box which has got values and i want to give the user to select the values when the Enter key pressed.

  1. User can navigate through Arrow key
  2. Select the value when user enters Enter key.

I have done this one :

$('#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");
     }
});

but is not giving alert when I press Enter key.

What could be the problem and how to solve it?

Best Regards.

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

Try this one

$('#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();
    });

If you want to post the form when the user presses enter you could also use a submit button which has this behaviour as a default.

If you don't want to post the form but do have a submit button, this might catch the key event and doesn't propagate.So remove any submit-button.

To restrict the event to an object use:

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

or jquery

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

Your code would look something like this:

$(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();
    });

For example:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM