2014-04-04 160 views
1

我有一个按钮,触发jquery事件,但只有当按钮被点击。如果单击它或使用返回键,是否可以使其工作?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

只要按钮具有焦点,Enter键将触发点击。我认为你的意思是你想要触发点击,如果输入被按下,而文本框有焦点... – canon

+0

可能重复[在JavaScript中输入按键事件](http://stackoverflow.com/questions/905222/enter -key-press-in-javascript) –

回答

5

只要按钮具有焦点,进入将触发click事件。我想你的意思是你想触发一个点击,如果进入而文本框一直专注按下...

所以,添加的keydown处理的文本框(fiddle):

$("#full_day").keydown(function(e){ 
    if(e.which === 13){ 
     $("#buttontest").click(); 
    } 
}); 
+0

正是.......... –

-1

看看this discussion

$('#full_day').keypress(function(e) { 
    if(e.which == 13) { 
     jQuery(this).blur(); 
     jQuery('#buttontest').trigger("click"); 
    } 
}); 
0

为按键添加另一个事件监听器。如果键码是13(这是返回键),则运行该功能。

elem.addEventListener('keypress',function(){someFunc(e);}, false); 

function someFunc(e){ 
if (e.keyCode === 13){ 

//run your code 

} 

这是纯粹的javascript。

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(); 
    // ... 
}); 

http://jsfiddle.net/nJH3g/2/

编辑:类型必须从按钮进行更改提交触发提交事件。

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!'); 
    } 

    }); 
}); 
0

这是你的工作示例:

http://jsfiddle.net/3JEKg/

绑定本在你的元素要触发按钮点击用回车键按

$('body').bind('keypress',function (event){ 
    if (event.keyCode === 13){ 
    $("#buttontest").trigger('click'); 
    } 
}); 
-1

为了改进canon的答案,可以使用jQuery的on事件绑定到键的向上或向下事件,并查找返回键。然后你可以检查你想触发点击事件的项目是否在焦点上。这里我使用hasClass来检查它是否是合适的项目。然后,您可以触发焦点物品上的点击事件。

$(window).on({ 
    keyup: function (event) { 
     if (event.which === 13 && $(':focus').hasClass('item')) { 
      $(':focus').trigger('click'); 
     } 
    } 
}); 
0

尝试两个按键和鼠标点击创建侦听:

function myFunction(e){ 
    if (e.which=='13' || e.type=='click'){ 
    // Run your code here 
    } 
} 
$(document) 
    .on('click', '#buttontest', myFunction) 
    .on('keypress', this, myFunction);