JQuery按钮适用于点击但不能正常工作输入

时间:2015-09-16 12:47:41

标签: jquery html

我有一个按钮如下:

<input type="submit" value="click me" id="clickme" />

我希望按钮在点击并输入(键盘描边)上执行操作。

检查我的小提琴: JSFIDDLE

它适用于点击但不适用于输入。

以下提供的SNIPPET代码

$('#clickme').keypress(function(e){
    if (e.which == 13){ //Enter key pressed
        alert('Enter pressed: Submitting the form....');
    }
});

$('#clickme').click(function(e){
    alert("clicked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<input type="submit" value="click me" id="clickme" />

4 个答案:

答案 0 :(得分:2)

它工作正常,但按Enter键时需要关注按钮。

例如,先单击它然后按Enter键。

按钮似乎是表单的一部分。

如果您想在提交表单时触发事件,请使用:

$('#form').on('submit', function(){
});

如果你真的只想让按钮/表格在网站的任何地方输入:

$(document).keypress(function(e) {
  if(e.which == 13) {
    $('#form').submit();
  }
}); 

答案 1 :(得分:2)

使用它:

$(document).ready(function(){
$('#clickme').keypress(function(e){
        if(e.which == 13){//Enter key pressed
            alert('Enter pressed: Submitting the form....');
        }
    });

$('#clickme').click(function(e){
alert("clicked");
    });
});

答案 2 :(得分:1)

按钮的按键事件仅在聚焦时发生。这只发生在点击按钮上。您需要在文档本身或表单的提交事件上绑定keypress事件才能使其工作:

$(document).keypress(function(e) {
 if(e.which == 13) {
    alert('Enter pressed: Submitting the form....');
}}); 

如果提交表单,您不需要有两个单独的事件。表单提交事件将同时处理按键和点击提交:

$('form').submit(function(e) {
  alert('Enter pressed: Submitting the form....');
});

<强> Working Demo

使用下面的代码段演示代码

&#13;
&#13;
$(document).keypress(function(e) {
if(e.which == 13) {
    alert('Enter pressed: Submitting the form....');
}
});

$('#clickme').click(function(e){
alert("clicked");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<input type="submit" value="click me" id="clickme" />
&#13;
&#13;
&#13;

答案 3 :(得分:1)

我认为您正在寻找JQuery submit函数,如下所示:

$('#myForm').submit(function () {
    alert("Submitted");
});

Here is the JSFiddle demo

注意:对于原始代码,该keypress事件的Enter事件必须处于关注状态