FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
在页面中有多个input type="text"的文本输入框的情况下没有问题,但是当页面中有只有一个文本框的情况下(),就会出现此问题.
后来在form 中添加:onsubmit="return false;"问题终于解决。
<form name="frm" method="post" onsubmit="return false;">
下边对“防止表单自动提交,以及submit和button提交表单”进行了些总结,希望对大家有些用(如果有不当的地方请指出)。
<html>
<script>
function exec(p){
document.frm.action = p;
document.frm.submit();
}
function exec1(p){
document.frm.action = p;
document.frm.submit();
document.frm1.submit();//IE页面定位到最后一个提交的action所对应的页面
alert("haha");//submit()后边的语句正常执行,这里弹出框文字”haha“
}
</script>
<head>
<h1>总结:FORM onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别</h1>
<head>
<body>
<!-- (1) 下边的写法使得表单frm能够自动提交
下边的这个form,将鼠标点进的文本框中然后按键盘的回车键,则页面自动进入百度页面:http://www.baidu.com
<form name='frm' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="hidden" name= "userName1"/>
</form>
注意:将上边的“<input type="hidden" name= "userName1"/>”去掉或者增加上,都不能改变页面的自动提交!
-->
<!-- (2)而同样的写法,进行如上的操作,却不会提交
可能是有两个文本输入框的缘故吧(注意:上边仅有一个)。
那如果一个页面中有多个from会怎样??后边有相关试验。
<form name='frm' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "pass"/>
</form>
-->
<!-- (3)下面试试,同一个页面有多个from的情况
这里先试试多个form、每个form中仅有一个文本输入框
<form name='frm1' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="hidden" name= "userName1"/>
</form>
<form name='frm2' action="http://www.google.cn/">
<input type="text" name= "userName"/>
</form>
经试验,每个from中的文本输入框都具有自动提交的能力。
-->
<!-- (4)下面试试,同一个页面有多个from的情况
这里先试试多个form、有的form中仅有一个文本输入框,有的form中则有多个文本输入框
<form name='frm1' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
</form>
<form name='frm2' action="http://www.google.cn">
<input type="text" name= "userName"/>
</form>
<form name='frm3' action="http://www.yahoo.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
</form>
经试验,只有 frm2 具有自动提交的特性。
看来:只要页面中的某个表单中仅有一个文本输入框,则其页面就具有自动提交的特性了。
-->
<!--(5)如何防止页面自动提交?!
很简单!只要在from 中加上 onSubmit="return false;"就OK了!
<form name='frm1' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
</form>
<form name='frm2' action="http://www.google.cn" onSubmit="return false;">
<input type="text" name= "userName"/>
</form>
呵呵,经过onSubmit="return false;" 改造后,frm2不再自动提交了!
-->
<!--(6)下边看看input type="submit"对提交表单的影响
这里不拿仅有一个文本框的form进行测试了(如果不用onSubmit="return false;" ,它是自动提交的)
<form name='frm1' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
<input type="submit" value="提交1"/>
</form>
<form name='frm2' action="http://www.google.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
<input type="submit" value="提交2"/>
</form>
则,分别鼠标点击frm1、frm2中的文本框并按回车后,会根据各自的action来进入不同的页面
-->
<!--(7)下边看看input type="button"对提交表单的影响
<form name='frm1' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
<input type="button" value="提交1"/>
</form>
<form name='frm2' action="http://www.google.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
<input type="button" value="提交2"/>
</form>
哈哈,分别鼠标点击frm1、frm2中的文本框并按回车后,都没有反应!看来button这样是不能提交表单的
-->
<!--(8)使用 "button" 来提交表单
<form name='frm' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= ""/>
<input type="button" value="提交1" onclick="exec('http://www.google.com')"/>
</form>
userName 、passWord处都填写数据,点击button。
OK!连上google了,IE地址栏显示:http://www.google.com/?userName=1passWord=1
-->
<!-- (9)使用 "button" 来提交表单——参考js exec1()中的相关注释
-->
<form name='frm' action="http://www.google.com">
<input type="text" name= "userName"/>
<input type="text" name= "passWord"/>
<input type="button" value="提交1" onclick="exec1('http://www.google.com')"/>
</form>
<form name='frm1' action="http://www.hao123.com">
<input type="text" name= "userName"/>
</form>
</body>
</html>
总结期间找了些关于onsubmit="return false;"的文章,作为资料也贴在下边。
URL:http://bbsanwei.javaeye.com/blog/271547
onSubmit的使用
在web开发中,我们经常会遇到,一点回车键表单就自己提交的问题,能不能禁用回车键呢,答案是肯定的.
Html代码
<from action="" method="post" onSubmit="return false">
...............
</from>
如果想在表单提交时,进行验证
Html代码
<html>
<head>
<script lanuage="javascript">
function check()
{
//验证不通过时
return false;
}
</script>
</head>
<body>
<from action="" method="post" onSubmit="return check()">
...............
</from>
</body>
</html>
<html>
<head>
<script lanuage="javascript">
function check()
{
//验证不通过时
return false;
}
</script>
</head>
<body>
<from action="" method="post" onSubmit="return check()">
...............
</from>
</body>
</html>
这样就会对表单进行验证再进行提交
要注意的是,千万不能写成
Html代码
<from action="" method="post" onSubmit="check()">
...............
</from>
因为check()不通过后会返回false, 因为onsubmit属性就像是<form>这个html对象的一个方法名,其值(一字符串)就是其方法体,默认返回true,所以还是相当于验证通过
记得对表单验证一定要写成这样
Html代码
<from action="" method="post" onSubmit="return check()">
...............
</from>
FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别的更多相关文章
- Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别
转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/ 在页面中有多个input type="text&q ...
- ASP.NET里面,如果设置了form的 onsubmit="return false;"之后,就不能提交按钮了?
我的按钮是写成的服务器控件的形式<asp:Button ID="btnSubmitBR" runat="server" Text="提交&quo ...
- onsubmit="return false;"报错
<form id="formpersonal" method="post" onsubmit="return false;">. ...
- onsubmit return false仍提交表单
博主之前遇到这样的问题,是因为代码有错,改正之后就正常了. 但今天确定代码没错,仍然return false提交表单. 总结网上各路大神的解释: 1.onsubmit的作用是防止form只有一个inp ...
- 原生js中stopPropagation,preventDefault,return false的区别
1.stopPropagation:阻止事件的冒泡,但不阻止事件的默认行为. 最好莫过于用例子说明: <div id='div' onclick='alert("div") ...
- JavaScript中function 之return false的理解(实例代码)
1.司空见惯代码,在某一dom节点上注册事件方法 $("#btnResponse").click(Login); $("#txtCode").keydown(R ...
- 在javascript中关于submit和button提交表单区别
submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. ...
- (转)在javascript中关于submit和button提交表单区别
原文来自:http://www.jb51.net/article/42236.htm submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和b ...
- submit和button提交表单的区别
<html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
随机推荐
- 自定义Chrome缩放比例
我想要设置Chrome页面缩放为120%,但是Chrome只提供110% 125%,根本没有让我舒心的缩放比例. 强迫症发作,谷歌了半天没有一个很好的解决方案. 虽然也有不少第三方扩展可以自定义缩放比 ...
- C# webservice服务跟踪调试方法(转)
1.新建网站,添加服务,并创建服务. 2.打开internet 信息服务管理器,添加网站,映射到创建的服务所在网站的目录. 3.打开服务所在网站的解决方案,进行配置. 1) 设置启动选项 选择启动操作 ...
- Easyui datagrid绑定数据,新增,修改,删除方法(一)
@{ ViewBag.Title = "UsersList"; } <script type="text/javascript"> $(functi ...
- python爬虫实践教学
i春秋作家:Mochazz 一.前言 这篇文章之前是给新人培训时用的,大家觉的挺好理解的,所以就分享出来,与大家一起学习.如果你学过一些python,想用它做些什么又没有方向,不妨试试完成下面几个案例 ...
- linux系统坏了,进不了登陆界面怎么办?
装oracle时,命令弄错了,结果系统崩溃之后就进不去系统了,启动后光标一直在闪烁,就是不显示登陆界面. 网上查了很多,什么grub引导之类的,完全没办法恢复系统. 系统坏了倒是无所谓,主要是系统上还 ...
- python 信号量,Event, 定时器
信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行. 如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路 ...
- WebDriver高级应用实例(2)
2.1在日期选择器上进行日期选择 被测网页的网址: https://www.html5tricks.com/demo/Kalendae/index.html Java语言版本的API实例代码 impo ...
- 生成代码的代码 之 POJO生成器 之二 模板实现
在之前的一篇博客中,我们写了利用node.js来生成JAVA的POJO代码的方法.有评论说可以利用模板来做这件事.当时认为模板只能做简单的字符串替换,所以可能无法完成任务.但是,仔细的学习了一个模板 ...
- 解决应用商店错误代码0x80072efd、0x80131505的方法
解决应用商店错误代码0x80072efd.0x80131505的方法 使用win10系统的朋友应该都会经常使用应用商店这个程序吧?它是微软自带的软件下载程序!不过最近有位win10的朋友告诉小编,他的 ...
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
一.介绍与准备 考虑到目标客户端基本都是windows客户端,所以此次开发环境将搭建在windows7下,相关开发工具有Msys2 和 Eclipse For C/C++ Msys2 是msys的升级 ...