2011-07-19 156 views
1

網上有很多解決方案停止輸入密鑰提交表單。最常使用<body onkeypress = ...停止輸入密鑰提交也停止輸入密鑰多行文本編輯

但是,這些似乎有停止在多行文本框中工作的Enter鍵的不良副作用。有誰知道解決這個問題的方法,所以回車鍵仍然可以在多行文本框中使用?

感謝,

AJ

回答

3
<script language="Javascript"> 
    document.onkeydown = function() { 
     if (event.keyCode == 13) { 
      if (document.activeElement.tagName.toLowerCase() != "textarea") { 
         event.preventDefault(); 
         return false; 
       } 
     } 
    } 
</script> 

像這樣的事情?

+0

編輯我的答案不使用JQuery。 – Jules

+1

這看起來不錯,但activeElement和跨瀏覽器支持可能存在問題。 –

+0

document.activeElement由IE6 +,FF3 +,Safari 4+,Opera 9+,Chrome 9+支持。 – Jules

1

你可以試試下面的(使用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

+0

感謝您的回覆,但我真的更喜歡非jQuery解決方案。 –

+0

查看我的非jQuery解決方案的更新答案 –