2011-06-15 41 views
1

我有這個功能,其中#text_comment是textarea的ID:如何禁用輸入/返回鍵因爲它執行功能後?

$('#text_comment').live('keypress',function (e) { 

    if(e.keyCode == 13) { 
     textbox = $(this); 
     text_value = $(textbox).val(); 

     if(text_value.length > 0) { 
      $(this).prev().append('<div id="user_commenst">'+text_value+'</div>'); 
      $(textbox).val(""); 
     } 
    }            
}); 

正在發生的事情是,當輸入的文本附加/返回鍵擊(鍵代碼13),但它也動按照輸入/返回鍵應該輸入一行。

即使我將文本框的值設置爲「」,也​​會發生這種情況。

回答

1
+0

是完美的。謝謝 – TaylorMac 2011-06-15 09:48:45

+0

@ TaylorMac-我想'ugeneK'給了相同的答案,40分鐘前,那麼你等待?工作示例:D – Vivek 2011-06-15 09:50:59

+0

他不喜歡我 – eugeneK 2011-06-15 10:09:32

4
+0

你將如何防止默認爲具體的輸入密鑰? – TaylorMac 2011-06-15 09:11:36

+0

將它綁定到if語句的事件insde? – eugeneK 2011-06-15 09:16:41

+0

+1首先給出正確答案。 – Vivek 2011-06-15 09:52:03

2

試試這個event.stopImmediatePropagation()

$('#text_comment').live('keypress',function (e) {  
      if(e.keyCode == 13) { 
       e.stopImmediatePropagation() 
     ///rest of your code 
    } 
}); 
+0

好主意,但它似乎並沒有工作:/ – TaylorMac 2011-06-15 09:14:09

+0

你可以告訴我們它在小提琴 – Vivek 2011-06-15 09:21:32

+0

是的,這工作正常。對不起,這是被搞亂它 – TaylorMac 2011-06-15 09:49:38

2

我已經測試了這一點,這個工程。輸入不會創建新行。

$('#text_comment').live('keypress',function (e) { 

    if(e.keyCode == 13) { 
     textbox = $(this); 
     text_value = $(textbox).val(); 

     if(text_value.length > 0) { 
      $(this).prev().append('<div id="user_commenst">'+text_value+'</div>'); 
      $(textbox).val(""); 
     } 
     return false; 
    }            
}); 

雖然我不知道,如果你不希望永遠有新的線,你爲什麼要使用一個textarea,爲什麼不使用的輸入型=「文本」呢?

+0

另一個函數這個答案的作品,以及謝謝 – TaylorMac 2011-06-15 09:49:19