input type="submit" 和"button"的区别

举报
SHQ5785 发表于 2022/04/27 09:27:27 2022/04/27
【摘要】   在一个页面上画一个按钮,有四种办法:<input type="button" /> 这就是一个按钮。如果你不写javascript 的话,按下去什么也不会发生。<input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它。<button> 这个按钮放在 form中也会点击自动提交,比前两个的优点是按钮的内容不光可以有文...

  在一个页面上画一个按钮,有四种办法:

  • <input type="button" /> 这就是一个按钮。如果你不写javascript 的话,按下去什么也不会发生。
  • <input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它。
  • <button> 这个按钮放在 form
    中也会点击自动提交,比前两个的优点是按钮的内容不光可以有文字,还可以有图片等多媒体内容。(当然,前两个用图片背景也可以做到)。它的缺点是不同的浏览器得到的
    value 值不同;可能还有其他的浏览器兼容问题。
  • 其他标签,例如 a, img, span, div,然后用图片把它伪装成一个按钮。

  需要强调的一点是,其实<input type="submit" />不是一个画面元素,而是一个表单(Form)元素,和文本输入是一样的,都属于“数据”的一部分(特征是,有value属性,而且该属性的值,会被传送到server端,可以拿来用),而不是样式的一部分。这种表现和数据混淆的设计,是早期web标准还比较简陋的时代的遗产。
  从画面表现上看,通过CSS可以把两者描绘得完全一样。
  从画面动作上看,通过JS可以强制两者动作也一致(都提交或者都不提交)。
  但是只有表单数据这个特性,是无法混淆的。<button>无法把自己当成Form的数据。所以,如果只是个单纯的按钮,触发一些画面动作,请使用<button>;反之,会把画面的数据提交给Server的,一般用<input type="submit" />,当然<button>+JS也完全可以取代。
  Submit是专门用于提交表单的Button,与Button的区别主要有两点:

  • type=button 就单纯是按钮功能
  • type=submit 是发送表单
  • (1)Submit将表单提交(form.submit())作为其onclick后的默认事件,Button并非如此
  • (2)表单提交时,所有具有name属性的html输入元素(包括input标签、button标签、select标签等)都将作为键值对提交,除了Submit对象。Submit对象只有在自己被单击后的提交中才会作为键值对被提交。

  但是对于从事WEB UI的人应该要注意到,使用submit来提高页面易用性:
  使用submit后,页面支持键盘enter键操作,而很多WEB软件设计师,可能没有注意到submit统一.
  用button后往往页面不支持enter键了。所以需要支持enter键,必须要设置个submit,默认enter键对页面第一个submit进行操作。
  执行完onClick,转到action。可以自动提交不需要onClick。所以说onclick这里可以不要。
  执行完onClick,跳转文件在 js文件里控制。提交需要onClick。
  比如:
  1,onclick=“form1.action=‘a.jsp’;form1.submit();” 这样就实现了submit的功能了。
  讲白一些,就是submit会有一个跳转,页面会刷新;而button不会刷新,就是一个button;可以用<button type="submit/button/reset"></button>来生成按钮,更加灵活,样式更好控制。

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/46cc348062c27bf57424afe162b04ab4.png) ![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/f9c024e20306fb0e4e3e84a15aab3217.png)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。