停止输入密钥提交也会在多行文本编辑中停止输入密钥

时间:2011-07-19 17:15:41

标签: javascript html events dom

网上有很多解决方案可以阻止输入密钥提交表单。最常用的是<body onkeypress = ...

但是这些似乎具有阻止在多行文本框中工作的回车键的不良副作用。有没有人知道这方面的方法,所以回车键仍然可以在多行文本框中工作?

谢谢,

AJ

2 个答案:

答案 0 :(得分:3)

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

这样的东西?

答案 1 :(得分:1)

您可以尝试以下(使用jquery):

$(function(){
$('input:not(textarea)').live('keypress', function(e) {
        if (e.which == 13) return false;
        if (e.which == 13) e.preventDefault();
    });
});

仅定位输入字段,而不是textareas。

NON 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