button标签和input类型为button和submit有什么区别么?

新手上路,请多包涵

button标签和input类型为button和submit有什么区别么?
这两个怎么区别使用?

阅读 7.1k
2 个回答

如果 <input><button><form>

type="submit" 会自动提交表单
type="button" 不会

button和input两者都是多态元素,两者都有多个type。
其中:
input[type="submit"] === button[type="submit"]
input[type="reset"] === button[type="reset"]
input[type="button"] === button[type="button"] === <button>
input[type="text"] === <input>

为什么要重复定义submit|reset|button三种交互控件,因为button元素允许内嵌子元素,而input是自闭合元素。

所以,你的问题“button标签和input类型为button和submit有什么区别么?”,答案是:
默认交互动作毫无区别,表现形式和语义小有区别

我想了想,刚才的答案说“===”恒等于,是不完全正确的。
input和button都属于交互型元素,所以:1、交互行为是一致;2、DOM不同;3、表现行为不可预期(表现方式是UA自由发挥的,不归html管)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题