2013-03-03 84 views
1

我的目標:如何將2個或多個jquery keydown函數組合成一個函數?

由作出一個功能清理多的keydown功能,導致相同的按鈕按下。

我的問題:

我已經做了很多的功能是這樣的:

$("#username").keydown(function(event){ 
    if(event.keyCode == 13) { 
     $('#loginbtn').click(); 
    }; 
}); 
$("#password").keydown(function(event){ 
    if(event.keyCode == 13) { 
     $('#loginbtn').click(); 
    }; 
}); 

觸發按鈕上點擊按鈕。這太亂了,使用了很多線條。我想將這些行組合成一個函數。我的登記表格也有很多包裝箱。

我試過了什麼?

我曾嘗試下面的代碼波紋管等複製不工作:

$("#username","#password").keydown(function(event){ 
    if(event.keyCode == 13) { 
     $('#loginbtn').click(); 
    }; 
}); 

2. 另一個想法我是使用一個班級,我只是不知道這是否被認爲是「正確」的方式來做到這一點,所以我需要意見:

$(".logintextbox").keydown(function(event){ 
    if(event.keyCode == 13) { 
     $('#loginbtn').click(); 
    }; 
}); 

然後我還想補充一點,類在我的HTML,所以所有的登錄文本框和所有的寄存器文本框具有獨特的類「分組」他們。

我的問題/ TL;博士:

我如何可以結合2個或更多的jQuery的keydown功能到使用多個ID或一類的功能之一?

+0

+1,寫得很好的問題。 – Starx 2013-03-03 22:56:56

回答

3

我建議從您的表單中委託代替單個元素。

$("#your_form_id").on('keydown', 'input', function(event){ 
    if(event.keyCode == 13) { 
     $('#loginbtn').click(); 
    }; 
}); 

這將捕獲您窗體中所有輸入按下的按鍵。

+0

我甚至需要這個「輸入」部分嗎? – Pachonk 2013-03-03 22:46:14

+0

@Pachonk,這將是理想的選擇,只捕獲只有''元素的keydown事件,而不是其他地方。 – Starx 2013-03-03 22:48:25

+0

因此,投入實際上在縮小,而不是擴大? – Pachonk 2013-03-03 22:49:27

2

選擇多個元素。 $('#username, #password')$的第二個參數是上下文。

+0

上帝,我試了幾個小時尋找這個,只是不知道什麼谷歌。謝謝,我已經投票贊成,因爲這是行得通的,但我會等待幾個更多的答案,看看是否有人可能有更強的答案。如果每個人的答案完全一樣,那麼你將是最好的答案。謝謝。 – Pachonk 2013-03-03 22:42:52

+0

我喜歡,@Starx的回答更好,更多的是我正在尋找的東西。 – Pachonk 2013-03-03 22:48:07

+1

ahah這很好;)。請記住保留一個css選擇器的作弊表格 – Ven 2013-03-03 22:48:33

相關問題