Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别
转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/
在页面中有多个input type="text"的文本输入框的情况下没有问题,但是当页面中有只有一个文本框的情况下(),就会出现此问题.
后来在form 中添加:onsubmit="return false;"问题终于解决。
<form name="frm" method="post" onsubmit="return false;">
下边对“防止表单自动提交,以及submit和button提交表单”进行了些总结,希望对大家有些用(如果有不当的地方请指出)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | < 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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现