Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery事件键按:输入键_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery事件键按:输入键

Javascript jQuery事件键按:输入键,javascript,jquery,html,Javascript,Jquery,Html,我有一个组合框,其中有一些值,我想让用户在按下Enter键时选择这些值 用户可以通过箭头键导航 选择用户输入Enter键时的值。 我已经做了这个: $('#cmb_CIMtrek_DailyshipCo_CustomerName select').bind('keypress', function(e) { var code = (e.keyCode ? e.keyCode : e.which); if(code == 13) { //Enter keycode

我有一个组合框,其中有一些值,我想让用户在按下Enter键时选择这些值

用户可以通过箭头键导航 选择用户输入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");
     }
});
但当我按下回车键时,它不会发出警报

问题可能是什么?如何解决

致以最诚挚的问候。

试试这一款

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

如果您想在用户按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();
    });
例如: 酒馆 及批示 文塔斯 $'exampleFormControlSelect1'。在'keypress'上,函数E{ var p=e,其中; ifp==13{ 警报“按下回车键”; } };
我不认为这是您遇到的问题,但这对于jQuery是不必要的:var code=e.keyCode?e、 键码:e.which;jQuery。试试keyup。从jQuery文档中可以看出:keypress事件不在任何官方规范的范围内,使用它时遇到的实际行为可能因浏览器、浏览器版本和,在一些html输入元素中按enter键将导致表单提交或至少触发onsubmit Firefox将触发输入类型submit onclick。如果是这种情况,您可能希望在事件对象上使用preventDefault:@HMR FYI在HTML5中选择标记上没有这样的行为:并且默认情况下,select已经支持您想要实现的目标tag@AspiringAqib这不起作用,这就是这个帖子在这里的原因。好吧,这个似乎起作用了,现在,我想在单击特定元素时限制Enter选项在我的例子中是Combo boxselecti我有几个组合框,每个组合框都有自己的功能,如何为特定的组合框触发此选项使用它们的id。每个组合框放置一个唯一的id,然后将脚本更改为$'Combo_id'。live'keypress',functione{let us live已被弃用。Use on insteadUsing live已被弃用,取而代之的是on,例如:$id.onkeypress,functionevent{alert'message';};
$(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();
    });