这两天做hacking的时候有件事情没弄明白,就是<input type="button" />和<input type="submit">究竟有啥区别。在StackOverFlow上看到了比较详细的说明,跟大家分享下:

http://stackoverflow.com/questions/290215/difference-between-input-type-button-and-input-type-submit

在一个form中,

button默认是啥都不做的,必须要在button上写js才能触发各种动作。

submit默认即使啥js都不写,也会提交form(准确的说是触发onsubmit事件)。当然你也可以在上面写js做点其他什么事儿。

button上写入onclick事件,只能通过鼠标点击触发。要用键盘触发的话,需要再写个onkeypress事件。

submit则除了鼠标之外,还可以通过键盘上的Enter触发。

 

在w3school上有对于这两个组件的详细说明:

http://www.w3schools.com/tags/tag_button.asp

http://www.w3schools.com/jsref/dom_obj_submit.asp

简单来说,submit就是一个默认被赋予了提交form功能的button。如果你需要的功能只是提交form,那就用submit最省事;如果想要实现较多自定义的功能,可能用button更加合适。

 

另外,如果你把button和submit互相转换的时候程序报错了,那么请检查form上的onsubmit事件,以及button/submit上的onclick等相关事件。