我注意到Facebook發送新狀態的方式。基本上,當你寫評論時,你沒有按鈕可以點擊,而是按下「輸入」鍵才能提交評論。現在我也想做這件事。我正在考慮可能的解決方案。在我看來,<input>
是通過按下輸入按鈕來提交的,但該textarea不是。觸發文本區域中的輸入
- 無論是我寫的輸入(類型文本),並設置一個高度女巫佔地面積超過一排
- 更多或我要補充一個textarea並以某種方式提交該表格,當用戶按回車鍵。
哪一個是最好的?如果答案=秒,我該怎麼做?
我注意到Facebook發送新狀態的方式。基本上,當你寫評論時,你沒有按鈕可以點擊,而是按下「輸入」鍵才能提交評論。現在我也想做這件事。我正在考慮可能的解決方案。在我看來,<input>
是通過按下輸入按鈕來提交的,但該textarea不是。觸發文本區域中的輸入
哪一個是最好的?如果答案=秒,我該怎麼做?
這取決於你如何定義最佳。
第一,如果你想要一個非常簡單的解決方案,不需要JavaScript
的秒是最好的,如果你要允許文本換行是最好的。
如果您想使用的文本區域的解決方案,你可以做這樣的事情:(用了jQuery)
<textarea id="mytextarea"></textarea>
<script>
$('#mytextarea').keypress(function(e){
if(e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
this.form.submit();
}
});
</script>
關於這個解決方案的好處是,它仍然允許人們做換行符,如果他們只是進入時按住shift鍵。就像在Skype上。
住在這裏例如:http://jsfiddle.net/MEtGg/
我上的回車鍵註冊一個按鍵偵聽器,當焦點在你的textarea的,這是國際海事組織最常見的和最好的方式。
在jQuery中可以使用keydown/up method
無需框架(如jQuery)只是這樣的:
var textarea = document.getElementById("area");
try {
textarea.addEventListener("keydown", keyPress, false);
} catch (e) {
textarea.attachEvent("onkeydown", keyPress);
}
function keyPress(e) {
if (e.keyCode === 13) {
alert("Enter key was pressed")
} else {
return;
}
}
看看這裏一個例子:http://fiddle.jshell.net/yuCAd/3/
我會隨着第二。並將使用javascript攔截回車鍵,然後調用一個函數來執行提交。 這個答案應該是這樣的情況:Trigger a button click with JavaScript on the Enter key in a text box
如果我可能會問這是否適合所有瀏覽器 – Uchenna 2011-07-31 21:24:51