html中submit和button的区别

 我来答
就烦条0o
2017-02-05 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。

如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。或者在使用submit时验证时加return
true或false。

submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上,submit会提交表单,button不会提交表单.

两者主要区别在于:

submit默认为form提交,可以提交表单(form).

button则响应用户自定义的事件,如果不指定onclick等事件处理函数,它是不做任何事情.当然,button也可以完成表单提交的工作.

INPUT type=submit 即发送表单,按回车提交表单

INPUT type=button
就是单纯的按钮功能,提交的是innerTEXT

===============submit 和
button的详细对比===================================

submit:特殊的button,会自动将表单的数据提交,onClick方法不加return
会自动提交,并不会起到约束的作用,

所以,使用submit时需要验证请加 return true或false.

例:<input type="submit" name="Submit" value="注
册" onClick=" return check();">,在JS中判断的时候 写return
true; 或者 return false;

button:普通的按钮,不会自动提交表单数据.可以在JS中显式提交:document.form1.submit(),使用场合:
一个页面有多个提交按钮,需要根据用户的操作来确定到底提交到哪个控制器,这种情况下,就需要在JS中判断用户的操作,然后根据操作来给document.form1.action赋值并且document.form1.submit()来提交

===============如果想好所有的提交都在一个servlet中处理,该怎么做==================

提交的按钮也是HTML组件,所以也可以通过
getParameter()来得到,那么getParameter()的参数也需要固定下来

参数就是所有的表单的提交按钮的name,当然提交按钮的name要一样才能统一在一个servlet中根据提交按钮的值来区别操作

======================关于路径的设置===================================

A.在页面中直接写路径,如 href="jsp/a.html" 表示
平级目录的访问,此例表示平级目录中有个JSP文件夹,访问的是文件夹中的a.html文件

B.在JAVA中直接写路径,如
response.sendRedirect("jsp/a.jsp")表示项目根目录下有个JSP文件夹,访问的是文件夹中的a.jsp文件

C.如果发现以上设置在浏览器中的地址栏不正确,可以采取绝对路径写法:/工程名/文件夹名/文件名

但是对于从事WEB UI的人应该要注意到,使用submit来提高页面易用性:

使用submit后,页面支持键盘enter键操作,而很多WEB软件设计师,可能没有注意到submit统一.

用button后往往页面不支持enter键了。所以需要支持enter键,必须要设置个submit,默认enter键对页面第一个submit进行操作。

<input type="submit" name="b1" value="提交"
onClick="bt_submit_onclick()">

执行完onClick,转到action。可以自动提交不需要onClick,所以说onclick这里可以不要。

<input type="button" name="b1" value="提交"
onClick="bt_submit_onclick()">

执行完onClick,跳转文件在 js文件里控制,提交需要onClick.如果这儿没有 onClick

例如:

type="submit"

<form id="frm1"
action="<%=request.ServerVariables("Script_Name")%>"
method="post" onSubmit="return
check_submit(this)">

<input id="btnconfirm" type="submit" value="确定"
name="btnconfirm"></form>

type="button"

<form id="frmAddModi"
action="<%=request.ServerVariables("Script_Name")%>"
method="post" name="frmAddModi" >

<input id="btnconfirm" type="button" value="确定"
name="btnconfirm"
onClick="check(frmAddModi);"/></form>
得新用9715
2017-02-05 · TA获得超过1.8万个赞
知道大有可为答主
回答量:3.2万
采纳率:0%
帮助的人:7788万
展开全部
Sumit提交表单,Button需要绑定事件才可以用提交数据不可以的,比如说你想实现局部刷新,就不能用Sumit了,用Button绑定事件就好了,如果用Sumit绑定事件的话,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式