form表单里如果只存在一个文本框,enter键提交

Posted vivayue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了form表单里如果只存在一个文本框,enter键提交相关的知识,希望对你有一定的参考价值。

在这里说一说浏览器里form表单的默认行为

我们都知道浏览器是存在很多默认行为的,可能是出于常用行为考虑又或者是历史原因。但有时候我们不需要这些默认行为。以下:

1)、当form表单里只存在一个input输入框时,回车会提交表单操作。

   解决方法可以在form里面再加入一个隐藏的input输入框,或者把input从form里面放出来。

2)、当form表单里有一个type=”submit”的按钮,回车会自动提交。

3)、当form表单里的button按钮没有加type类型时,在ie下默认是button类型,标准浏览器下是submi类型

  最好加上type=button,以保持各浏览器保持一致

4)、 其他表单元素如textarea、select不影响,radio checkbox不影响触发规则,但本身在Firefox下会响应回车键,在IE下不响应。

5)、type=”image”的input,效果等同于type=”submit”,不知道为什么会设计这样一种type,不推荐使用,应该用CSS添加背景图合适些。

<script type="text/javascript">   

    document.onkeydown=keyDownSearch; 
    function keyDownSearch(e) {  
        // 兼容FF和IE和Opera  
        var theEvent = e || window.event;  
        var code = theEvent.keyCode || theEvent.which || theEvent.charCode;  
        if (code == 13) {   
            DoSomeThing();//具体处理函数  
            return false;  
        }  
        return true;  
    } 
</script>

如果只是针对某个DIV层应用回车查询的话,可以将: 
document.onkeydown=keyDownSearch; 
改成: 
document.getElementById(‘层ID‘).onkeydown=keyDownSearch; 

以上是关于form表单里如果只存在一个文本框,enter键提交的主要内容,如果未能解决你的问题,请参考以下文章

MS Access Form - Enter 键未移动到新行

移动端form表单

按enter 导致整个页面刷新的解决办法

按Enter键后Form表单自动提交的问题

Access VBA 引用 Active Form 上的文本框

javascript 如何获取表单中所有文本框