網上有很多解決方案停止輸入密鑰提交表單。最常使用<body onkeypress = ...
停止輸入密鑰提交也停止輸入密鑰多行文本編輯
但是,這些似乎有停止在多行文本框中工作的Enter鍵的不良副作用。有誰知道解決這個問題的方法,所以回車鍵仍然可以在多行文本框中使用?
感謝,
AJ
網上有很多解決方案停止輸入密鑰提交表單。最常使用<body onkeypress = ...
停止輸入密鑰提交也停止輸入密鑰多行文本編輯
但是,這些似乎有停止在多行文本框中工作的Enter鍵的不良副作用。有誰知道解決這個問題的方法,所以回車鍵仍然可以在多行文本框中使用?
感謝,
AJ
<script language="Javascript">
document.onkeydown = function() {
if (event.keyCode == 13) {
if (document.activeElement.tagName.toLowerCase() != "textarea") {
event.preventDefault();
return false;
}
}
}
</script>
像這樣的事情?
你可以試試下面的(使用jQuery):
$(function(){
$('input:not(textarea)').live('keypress', function(e) {
if (e.which == 13) return false;
if (e.which == 13) e.preventDefault();
});
});
只有輸入字段目標,而不是文字區域。
非JQUERY
function disableEnterKey(e)
{
var key;
if(window.event)
key = window.event.keyCode;
else
key = e.which;
return (key != 13);
}
,並在所有的文本輸入
添加onkeypress事件<input type="text" name="textIn" onKeyPress="return disableEnterKey(event)"/>
編號:http://www.bloggingdeveloper.com/post/Disable-Form-Submit-on-Enter-Key-Press.aspx
感謝您的回覆,但我真的更喜歡非jQuery解決方案。 –
查看我的非jQuery解決方案的更新答案 –
編輯我的答案不使用JQuery。 – Jules
這看起來不錯,但activeElement和跨瀏覽器支持可能存在問題。 –
document.activeElement由IE6 +,FF3 +,Safari 4+,Opera 9+,Chrome 9+支持。 – Jules