input type="submit" 和"button"的区别及表单提交

摘要:
2用户单击按钮后将自动提交表单,除非您编写javascript来阻止它。如何提交表单:1<inputtype=“button”/˃这是一个按钮<button>您不能将自己视为表单的数据。因此,如果只是一个简单的按钮触发一些屏幕操作,请使用<button>;相反,屏幕的数据将被提交到服务器,通常是。当然,+JS也可以完全替换。
在一个页面上画一个按钮,有四种办法:
  • 1 <input type="button" /> 这就是一个按钮。如果你不写javascript 的话,按下去什么也不会发生。
  • 2 <input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它。
  • 3 <button> 这个按钮放在 form 中也会点击自动提交,比前两个的优点是按钮的内容不光可以有文字,还可以有图片等多媒体内容。(当然,前两个用图片背景也可以做到)。它的缺点是不同的浏览器得到的 value 值不同;可能还有其他的浏览器兼容问题(葛亮)。
  • 4  其他标签,例如 a, img, span, div,然后用图片把它伪装成一个按钮。

提交表单的方式:  

  • 1 <input type="button" /> 这就是一个按钮。通过编写javascript,添加 onclick提交form。
  • 2 <input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它。
  • 3 <button> 这个按钮放在 form 中也会点击自动提交
  • 4  <input type="image">此标签放置在<form>标签内就具有提交功能
需要强调的一点是,其实<input type="submit" />不是一个画面元素,而是一个表单(Form)元素,和文本输入是一样的,都属于“数据”的一部分(特征是,有value属性,而且该属性的值,会被传送到server端,可以拿来用),而不是样式的一部分。这种表现和数据混淆的设计,是早期web标准还比较简陋的时代的遗产。
从画面表现上看,通过CSS可以把两者描绘得完全一样。
从画面动作上看,通过JS可以强制两者动作也一致(都提交或者都不提交)。
但是只有表单数据这个特性,是无法混淆的。<button>无法把自己当成Form的数据。
所以,如果只是个单纯的按钮,触发一些画面动作,请使用<button>;反之,会把画面的数据提交给Server的,一般用<input type="submit" />,当然<button>+JS也完全可以取代。



作者:zhaosj
链接:https://www.zhihu.com/question/20839977/answer/21842933
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
作者:王洪雷
链接:https://www.zhihu.com/question/20839977/answer/16354924
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

免责声明:文章转载自《input type="submit" 和"button"的区别及表单提交》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ios cocoapods获取不到最新库的原因主要有两个:Oracle版本区别[转载]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

layui 解决浏览器自动填充form表单账号和密码输入框的问题

用js去清除input的value值是无效的,因为浏览器填充账号密码的动作是在js执行完之后发生的。 浏览器会自动寻找第一个输入框和最后一个密码框自动填充,我们可以给它添加一些假的密码框,让其无法自动填充。 解决办法: 在自己的input框前后添加假的<input type="password" /> <input type="pass...

Exceptionless(二)

Exceptionless(二) - 本地部署使用进阶 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/11100563.html 官网地址:http://letyouknow.net 在上一篇文章Exceptionless - .Net Core开源日志框架中就说到如何对Except...

PyQt5-按钮关闭窗体-4

import sys from PyQt5.QtWidgets import QApplication, QWidget,QToolTip,QPushButton from PyQt5.QtGui import QIcon,QFont from PyQt5.QtCore import QCoreApplication #demo_4:通过一个按钮关闭窗体...

JavaScript 文件操作方法详解

可以通过浏览器在访问者的硬盘上创建文件,因为我开始试了一下真的可以,不信你把下面这段代码COPY到一个HTML文件当中再运行一下! <scriptlanguage="JavaScript"> <!-- varfso=newActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile...

Nodejs介绍及npm工具使用

一、Nodejs介绍   Nodejs英文网:https://nodejs.org/en/   Nodejs中文网:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,...

js 实时监听input中值变化

注意:用到了jquery需要引入jquery.min.js。 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60。 注意:需要判断null、""、isNaN()(是否是数字:如输入的是字母"a")、输入数值大小范围不能超过规定的总分;    如果为null、""、isNaN为true、输入数值大小范围超过...