2014-04-04 246 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);