Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 如何组合点击事件&;enterkey的键关闭?_Javascript_Jquery - Fatal编程技术网

Javascript 如何组合点击事件&;enterkey的键关闭?

Javascript 如何组合点击事件&;enterkey的键关闭?,javascript,jquery,Javascript,Jquery,我有一个小测验,我正试图得到它,以便在用户输入答案后,他们可以单击提交按钮或按键盘上的enter键。我尝试使用回调函数捕获这两个实例 <form> <input id="answer"></input> <button id="btn" class="submit">SUBMIT</button> </form> var cal

我有一个小测验,我正试图得到它,以便在用户输入答案后,他们可以单击提交按钮或按键盘上的enter键。我尝试使用回调函数捕获这两个实例

        <form>
            <input id="answer"></input>
            <button id="btn" class="submit">SUBMIT</button>
        </form>

        var callback = function() {
            var myAnswer = document.getElementById('answer').value;
            if (myAnswer == "y" || myAnswer == "Y" ) {
                $('.content-bd').html("<p>Well done!<p>");
            }
            else {
                $('.content-bd').html("<p>Try again<p>");
            }
        };

        $("input").keypress(function() {
            if (event.which == 13) callback();
        });

        $('#btn').click(callback);

提交
var callback=function(){
var myAnswer=document.getElementById('answer')。值;
如果(myAnswer==“y”| | myAnswer==“y”){
$('.content bd').html(“做得好!”);
}
否则{
$('.content bd').html(“请重试”;
}
};
$(“输入”).keypress(函数(){
if(event.which==13)callback();
});
$('#btn')。单击(回调);

您无法收集
事件

$("input").keypress(function(event) {
    if (event.which == 13) callback();
});

您无法收集
事件

$("input").keypress(function(event) {
    if (event.which == 13) callback();
});

它的keydown功能不包括按键和传递事件

<input type="text" id="txt"/>

$('#txt').keydown(function (e){
    if(e.keyCode == 13){
        alert('you pressed enter ^_^');
    }
})

$('#txt').keydown(函数(e){
如果(e.keyCode==13){
警报('您按下回车键^ ^');
}
})

它的按键功能不是随传递事件一起按键

<input type="text" id="txt"/>

$('#txt').keydown(function (e){
    if(e.keyCode == 13){
        alert('you pressed enter ^_^');
    }
})

$('#txt').keydown(函数(e){
如果(e.keyCode==13){
警报('您按下回车键^ ^');
}
})

至少有四个问题:

  • 按钮的默认
    类型
    提交
    ,因此单击该按钮将提交表单(并刷新页面)。如果不需要,请将
    type=“button”
    添加到
    按钮中

  • input
    标记是无效的标记,您永远不会写入

  • ,您忘记了在
    按键
    回调中声明
    事件
    参数,因此您依赖于Firefox上不存在的全局
    事件。(它可以在Chrome或IE上工作。)

  • 如果表单只有一个
    输入
    ,并且用户按Enter键,则某些浏览器会提交表单。如果您不希望发生这种情况,请阻止表单提交

  • 因此:

    var callback=function(){
    var myAnswer=document.getElementById('answer')。值;
    如果(myAnswer==“y”| | myAnswer==“y”){
    $('.content bd').html(“做得好!”);
    }
    否则{
    $('.content bd').html(“请重试”;
    }
    };
    $(“输入”)。按键(功能(事件){
    if(event.which==13)callback();
    });
    $('#btn')。单击(回调);
    $(“表格”)。提交(虚假)
    
    
    提交
    
    至少有四个问题:

  • 按钮的默认
    类型
    提交
    ,因此单击该按钮将提交表单(并刷新页面)。如果不需要,请将
    type=“button”
    添加到
    按钮中

  • input
    标记是无效的标记,您永远不会写入

  • ,您忘记了在
    按键
    回调中声明
    事件
    参数,因此您依赖于Firefox上不存在的全局
    事件。(它可以在Chrome或IE上工作。)

  • 如果表单只有一个
    输入
    ,并且用户按Enter键,则某些浏览器会提交表单。如果您不希望发生这种情况,请阻止表单提交

  • 因此:

    var callback=function(){
    var myAnswer=document.getElementById('answer')。值;
    如果(myAnswer==“y”| | myAnswer==“y”){
    $('.content bd').html(“做得好!”);
    }
    否则{
    $('.content bd').html(“请重试”;
    }
    };
    $(“输入”)。按键(功能(事件){
    if(event.which==13)callback();
    });
    $('#btn')。单击(回调);
    $(“表格”)。提交(虚假)
    
    
    提交
    
    实际上,我更喜欢在包装表单上注册。这样,用户可以像通常一样与页面交互

    $('form').submit(function (e) {
        e.preventDefault();
    
        ...
    });
    
    这样,用户既可以按其中一个提交按钮,也可以在集中输入字段时按enter键

    e.preventDefault()
    用于阻止浏览器实际提交表单,这将导致页面刷新

    这种方法的另一个好处是,在将来,如果更改表单并添加新字段/提交按钮,事件仍将得到正确处理


    干杯。

    我实际上更喜欢做的是在包装纸上注册。这样,用户可以像通常一样与页面交互

    $('form').submit(function (e) {
        e.preventDefault();
    
        ...
    });
    
    这样,用户既可以按其中一个提交按钮,也可以在集中输入字段时按enter键

    e.preventDefault()
    用于阻止浏览器实际提交表单,这将导致页面刷新

    这种方法的另一个好处是,在将来,如果更改表单并添加新字段/提交按钮,事件仍将得到正确处理

    干杯。

    可能重复的可能重复的