2014-05-06 34 views
0

我有幾個文本輸入,其中按Enter鍵應該移動到下一個,最後輸入文本後最後提交按鈕應該沒有被按下的焦點。設置焦點提交按鈕觸發綁定事件

$("input.insert").keydown(function (event) { 
    if(event.keyCode == 13) { 
     $("input.insert").eq($("input.insert").index(this) + 1).focus(); 
    } 
}); 

但是,當光標在最後一個文本輸入框只是提前提交按鈕和我打進入焦點跳躍到提交按鈕:通過輸入優秀作品與這個從輸入跳到輸入釋放其點擊事件。爲什麼?我希望用戶在離開最後一個輸入字段後再次點擊進入。

非常感謝您的幫助。

回答

0

很難準確地說出你的代碼沒有看到剩下的代碼,但是我確定添加event.preventDefault()行可以解決你的問題。它基本上是從carring了該事件的默認操作見例如http://jsfiddle.net/3m4eL/

$('input[type="text"]').keydown(function (event) { 
    if (event.keyCode == 13) { 
     $("input").eq($("input").index(this) + 1).focus(); 
     event.preventDefault(); 
    } 
}); 

注停止瀏覽器,我只約束功能的文本輸入的keydown事件,而不是提交輸入 - 否則你在所有

筆記不能提交表單event.preventDefault()並不9版之前的原生在Internet Explorer中存在,但jQuery的補充缺少的功能,爲您和使用作爲後備

+0

這確實是有幫助的!非常感謝你。你的兩條建議都是必要的,以便讓這些東西按照需要執行。不限制keydown事件文本輸入,只會發生一些奇怪的事情:以下提交按鈕獲取邊框,但不是虛線焦點指示器,並且不響應任何其他鍵。我必須說,這一切真的很尷尬。你是怎麼想出這個解決方案的?我該怎麼做?再次感謝。 :o) – Robbit

+0

如果我真的被這樣的事情困住了,那麼我所做的就是將事情回溯到他們最簡單的形式(工作),然後慢慢地將其餘的加回去。這使得它更容易,因爲你縮小了它重點放在問題出在哪裏。這對jsFiddle來說太好了 - 看看你是否可以在那裏再現你的問題,我會看看它... –