我有一个触发jquery事件的按钮,但只有在单击按钮时才会触发。如果单击它或使用返回键,是否可以使其工作?
$(document).ready(function () {
var zipCodes = [60538, 60504];
$("#buttontest").click(function () {
var zipIndex = zipCodes.indexOf(parseInt($("#full_day").val()));
$("#zipMessage > div").hide("fast");
var zipId = zipIndex > -1 ? zipCodes[zipIndex] : "Error";
$("#zip" + zipId).show("fast");
});
});
这是一个有效的例子; http://jsfiddle.net/7SPGh
答案 0 :(得分:6)
只要按钮具有焦点, enter 将触发click事件。我认为你的意思是,如果在文本框有焦点时按下输入,你就想触发点击...
因此,在文本框中添加一个keydown处理程序(fiddle):
$("#full_day").keydown(function(e){
if(e.which === 13){
$("#buttontest").click();
}
});
答案 1 :(得分:1)
您可以将输入和按钮包装到表单元素中以侦听提交事件:
<form id="form">
<input type='text' id="full_day"/>
<input type='submit' id="buttontest" value="Enter Zip Code"/>
</form>
$("#form").submit(function(e){
e.preventDefault();
// ...
});
编辑:必须将类型从按钮更改为提交以触发提交事件。
答案 2 :(得分:0)
为keypress添加另一个事件侦听器。如果键码是13(这是返回键),则运行该功能。
elem.addEventListener('keypress',function(){someFunc(e);}, false);
function someFunc(e){
if (e.keyCode === 13){
//run your code
}
这是纯粹的javascript。
答案 3 :(得分:0)
提出你的例子,这就是解决方案:http://jsfiddle.net/7SPGh/7/
$(document).ready(function(){
var zipCodes = [60538,60504];
$("#buttontest").click(function(){
var zipIndex = zipCodes.indexOf(parseInt($("#full_day").val()));
$("#zipMessage > div").hide("fast");
var zipId = zipIndex > -1 ? zipCodes[zipIndex] : "Error";
$("#zip"+zipId).show("fast");
});
$("#full_day").keypress(function(e) {
if(e.which == 13) {
alert('You pressed enter!');
}
});
});
答案 4 :(得分:0)
以下是您的工作示例:
将您想要触发按钮的元素绑定到Enter键按
$('body').bind('keypress',function (event){
if (event.keyCode === 13){
$("#buttontest").trigger('click');
}
});
答案 5 :(得分:0)
为了改进佳能的答案,您可以使用jQuery的on事件绑定到键上或下事件,并查找返回键。然后,您可以检查要触发单击事件的项目是否在焦点上。在这里,我使用了hasClass来检查它是否是一个合适的项目。然后,您可以触发焦点项目上的点击事件。
$(window).on({
keyup: function (event) {
if (event.which === 13 && $(':focus').hasClass('item')) {
$(':focus').trigger('click');
}
}
});
答案 6 :(得分:0)
尝试为按键和鼠标点击创建侦听器:
function myFunction(e){
if (e.which=='13' || e.type=='click'){
// Run your code here
}
}
$(document)
.on('click', '#buttontest', myFunction)
.on('keypress', this, myFunction);
答案 7 :(得分:-1)
$('#full_day').keypress(function(e) {
if(e.which == 13) {
jQuery(this).blur();
jQuery('#buttontest').trigger("click");
}
});