2011-11-01 78 views
0

嗨,我是在即時嘗試製作一個jquery ajax提交表單,並且即時試圖對提交表單進行限制。 我希望用戶按Enter鍵提交表單,而不是按下提交按鈕 ,但只有當用戶關注他/她按下輸入時將提交的textarea/input字段時!jQuery onFocus textarea,然後在keyup提交

我試圖讓在它自己的代碼和編輯來看看有什麼效果, ,我已經想通了這些代碼,但它不工作得很好:(

$('.addformtextarea').focus(function() { 

$(document).keyup(function(e){ 
    switch (e.keyCode) { 
     case 13: //enter 
     //code to be 
     break; 
    } 
}); 

.addformtextarea是textarea的把重點放在

,並不會返回false;休息前右;行爲相同,休息;因爲我有一回假

感謝:?d

回答

0

試試這個:

$('.addformtextarea').keyup(function(e){ 
    switch (e.keyCode) { 
     case 13: //enter 
     //code to be 
     return false; 
    } 
}); 

你並不需要擔心的焦點,因爲KEYUP只會火如果輸入具有焦點。

打破只打開了開關,你需要返回false以防止自動提交,如果你正在做的代碼。

+0

休息;無法達到? – jbabey

+0

非常感謝! 和謝謝你回答我的第二個問題返回錯誤不會弄亂開關/案件?多數民衆贊成好消息:) 它現在的作品:D – Flaashing

+0

@ jbabey:你是對的,更新! – Mottie

1

你可能會更好結合keyup事件輸入:

$(".addformtextarea").keyup(function(e) { 
    switch (e.which) { 
     case 13: //enter 
     //code to be 
     break; 
    } 
}); 

請注意,我用which代替keyCode。這只是因爲jQuery規範化事件對象以消除任何跨瀏覽器的不一致。

您當前的代碼存在的問題是,一旦focus事件被觸發,keyup事件被綁定到document並且將觸發元素是否具有焦點。

1

試試這個:

$('textarea').keydown(function(e) { 
    if (e.which == 13) { 
     alert('You pressed enter'); 
     // $('your_form').submit(); 
    } 
}); 

如果用戶在輸入文本區域,那麼是不是很集中?我真的不喜歡冗餘。

演示:http://jsfiddle.net/cjTu9/4/

相關問題