2014-12-18 208 views
0

我有一個形象標籤:使用jQuery觸發Enter事件

  <img src='Presale.png' alt='presell' onclick="presell()"/> Presell 

功能:

function presell() 
{ 
    $(".form-control").val("presell"); 
    var e = jQuery.Event("keypress"); 
    e.which = 13; 
    e.keyCode = 13; 
    $(".form-control").trigger(e); 
} 

我想要做的是,以填補一個搜索框,一些文本和觸發enter時刻點擊特定圖像以便進行與該圖像相關的搜索。但是,此代碼將值放到搜索框中,但不會觸發enter

+1

你可能不需要觸發進入。相反 - 假設你的搜索欄在表單中 - 你可以在表單上觸發'「submit」'(與選擇字段時按Enter鍵相同)。 –

+1

通過觸發輸入,您希望表單提交? (在這種情況下,你可以調用$(「。form-control」)。submit()而不是 – Playmaker

+0

你有一個完整的表格'

'或只是輸入? –

回答

1

您需要提交實際的形式,而不是觸發keypress事件與enter的鍵碼(不工作)

例如

$("form").submit(); 
1

你可以這樣說:

<img src='Presale.png' alt='presell' /> Presell 
<form> 
    <input type="text" class="form-control" /> 
</form> 

注:我刪除從圖像中單擊處理程序。

而在JS:

$("img").on("click", function(){ 
    $(".form-control").val("presell"); 
    $("form").submit(); 
}); 

Demo

+0

它不是一個表單,只是一個輸入字段。 – Ashish

+0

你能發表嗎?一個可以看到的地方的鏈接?不確定是否輸入,但可能有其他事件綁定到輸入字段,其中y你需要觸發。 –

0

我想你需要的是模擬一個「返回/輸入」按鍵這將最自然提交的輸入值(可通過提交/ AJAX)

.trigger()將調用事件處理程序,而不是模擬本機瀏覽器事件。請參考:http://learn.jquery.com/events/triggering-event-handlers/

然後,您需要將事件處理程序綁定到enter鍵並提供無論如何要做的事情。這意味着包括.submit()post()$.ajax()或任何代碼被稱爲(除非它是在一個觸發器處理程序中定義)

你可能需要的是.simulate();可以通過jquery.simulate.js