表单自动提交问题整理

表单自动提交问题

问题描述

二是利用了浏览器的默认行为(至少发现ie是这样的)。浏览器在解析网页的时候,有许多默认的行为,例如: * 如果一个页面上有表单和一个提交按钮,那么打开页面时,焦点会自动落在这个提交按钮上面。 * 同样如果一个表单中只有一个单行文本输入域(text),那么在这个输入域中按Enter键时,浏览器会自动提交该表单。 我们对于第一种情况一般都知道而且很容易理解,但是对于第二种浏览器的默认行为,可能知道这一点的人就比较少了,下面我具体看一下浏览器(至少ie如此)在表单提交上的默认行为。 如果表单中含有一个单行文本输入域,那么无论含有多少其他类型的表单组件,那么在该输入域中点击Enter时,表单会自动提交。例如下面的代码: <form action="" method="post"> <input type="text" name="sdfsdf"/> <textarea</textarea> <input type="checkbox"sdfsdf> <input type="hidden"name="aa"/> </form>如果表单中含有两个或多个单行文本输入域,那么无论是否含有其他类型的表单组件,按Enter键时不会自动提交,例如: <form action="" method="post"> <input type="text" name="sdfsdf"/> <input type="text" name="sddf"/> </form>

解决方法

办法很简单,我们上面举的例子中已经有了,只要再添加一个文本输入框就可以了,可能你会说,为了不自动提交就要增加一个没有用的输入框,而且中含有两个输入框最终用户会接受吗?其实可以解决,你可以将那个新添加的输入框通过style隐藏即可,例如: <form action="" method="post"> <input type="text" name="notautosubmit" style="display:none"/> <input type="text" name="username"/> </form>还有一个方法可以绑定button按钮 enter触发事件:document.onkeypress = function(){ if(event.keyCode == 13) { search(); returnfalse; } } 其中search方法是onclick事件:

注意:1、form自动提交,input最好不要有value=""配置(有次设置时焦点在input上时点击enter表单会自动提交)。

时间: 2024-12-21 07:41:04

表单自动提交问题整理的相关文章

常见表单重复提交问题整理及解决方法

常见表单重复提交问题整理及解决方法 一.常见的重复提交问题 a>点击提交按钮两次. b>点击刷新按钮. c>使用浏览器后退按钮重复之前的操作,导致重复提交表单. d>使用浏览器历史记录重复提交表单. e>浏览器重复的HTTP请求. 二.防止表单重复提交的方法 a>禁掉提交按钮.表单提交后disabled现在的按钮或者取消该按钮的点击事件或者默认事件.这种方法防止心急的用户多次点击按钮.但有个问题,如果在客户端把Javascript给禁止掉,这种方法就无效了,当然现代的w

按下enter键后表单自动提交问题

在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Ajax请求返回结果:而按下enter键是直接post请求然后跳转返回一个页面,失去了页面样式及导航等. 一开以为是写了js代码导致按下enter键之后会触发表单提交,后来把js代码全部移除也是一样地按下enter键会触发表单提交.到网上搜索发现是因为默认情况下在form表单内按下enter键会触发表单自

遇到的一个Form表单自动提交问题解决办法

Form 表单中只有一个 input 元素时按回车会默认提交表单.有的时候我们希望按回车可以进行列表查询,但是查询后表单被自动提交了,然后刷新了整个页面.这个时候就需要对这个 Form 表单处理一下以满足在只有一个 input 元素时也能回车查询. 基本表单如下: <html> <head></head> <body> <form action='XXX' name='searchForm' method='post'> 查询: <inpu

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

怪事年年有,今年特别多. 话说,最近项目中遇到一件怪事,当我鼠标focus在文本框中,轻轻敲了下回车键,尼玛页面突然刷新了,当时把宝宝给吓得. 接下来就是一番苦逼的烧脑和蛋疼~ 一.被表象所迷惑 突然出现这种情况,脑海中第一反应是,keydown事件是不是出问题了,然后找啊找啊找啊,然后没有然后. 在把input元素上的所有事件移除掉后,我自信的按了一下enter键.艾玛,又刷新了.心里那个苦哎. 二.列出所有可能 一阵捣鼓之后,脑海中列出了所有按下enter键后的改变,url改变,多了一个问号

form表单自动提交

form表单提交是web项目中经常遇到的,但是如果form中只有一个input为text类型的输入框时, 需要格外注意,因为这时候只要你按下回车键,form表单就会自动提交,这是form表单的一个特性. 如何有效的防止呢? 小编认为最简洁有效的方法就是增加一个隐藏域.比如下面的代码就可以解决问题:   <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding=&qu

关于表单自动提交的问题及解决方式

在js中,我们常常会用到表单提交,但小编今天遇到一个问题:在删除所有引用的js文件之后,页面还是刷新 最后发现问题如下: 在js中,使用表单提交,即使你不写$("XXX").submit()也会使得表单提交,那如何寻找这种问题解决方式呢? 总结问题及解决方式如下: (1)使用onsubmit()阻止表单提交,但是会有一个触发问题,onsubmit 事件只有在表单中的确认按钮被点击时发生触发. 原因如下: 先看一段代码: 1 <form action="index.jsp

设置cookie倒计时让让表单自动提交

1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> 2 <%@ taglib prefix="s" uri="/struts-tags"%> 3 <html> 4 <head> 5 <title>开始考试</title> 6 <link href

怎样才能让网页中的表单自动提交

<script type="text/javascript"> function load(){document.all.f1.submit();}</script> <body ><form action="地址" method="post" name="f1"></form> </body> 应该可以~

使用js使表单自动提交

1 function sub(){ 2 document.yeepay.submit(); 3 } 4 setTimeout(sub,1000);//以毫秒为单位的.1000代表一秒钟.根据你需要修改这个时间. 5 //-->