jQuery和在按钮元素上使用Enter键而不是空格键

问题描述:

在我的表单上,我阻止用户通过单击文本元素中的回车来提交表单,但是我希望允许他们使用回车键来提交当按钮元素具有焦点时形成。目前,它只适用于空格键。我试过以下内容:jQuery和在按钮元素上使用Enter键而不是空格键

$("#dyn-gen-form").on("keypress", "#genAttFormBtn", function(e) { 
    e.preventDefault(); 
    log("pressed a key"); 
    var k = e.keyCode || e.which; 
    if (k == 13) { 
    // do the work 
    return false; 
    } 
}); 

但它不工作。我不是在工作,我的意思是,事件没有被触发。我什么也没得到。

+0

我觉得'$(“#dyn-gen-form”)'是表单本身。尝试把它作为'$(“#dyn-gen-form #submit”)' – safrazik 2012-03-22 07:45:29

我为你做了一个样本:http://jsfiddle.net/p7vzJ/54/ - 按钮检测空格键以及输入键击; 请在jsfiddle加载完成后按空格或进入。

我可以删除我的帖子,如果你不想使用.live请让我知道。

jQuery代码

$(document).ready(function() { 
$("#genAttFormBtn").focus(); 
$("#dyn-gen-form").live("keydown", "#genAttFormBtn", function(e) { 
    e.preventDefault(); 
    //log("pressed a key"); 
    if(e.keyCode == 32) { 
     alert('whitespace'); 
     $("#previous").click(); 
    } else if(e.keyCode == 13) { 
     alert('enter'); 
    } 
}); 

});​ 

喝彩!

+0

这在您的jsfiddle示例中有效,但由于某种原因,它仍然不能在我的应用程序中工作。如果我发现问题,我会回复更多信息。 – Gregg 2012-03-22 08:00:02

+0

Saweet,当然,我很想在我睡觉之前把它钉死:))现在发痒:P欢呼。 – 2012-03-22 08:00:52

+0

我很蠢。正在使用不正确的选择器。 – Gregg 2012-03-22 08:06:35