type=”submit”&&type=”image”的区别:
我们知道type=image可以作为表单的图片按钮,表面上 type=image和type=submit都可以相应回车,并且都能提交。
唯一的区别:type=image的input提交方式会把按钮点击的位置坐标x,y提交过去。
对于通常的表单应用来说,这样多一两个参数并没有问题,因为我们在接收端中都是按照指定的名称来处理参数,所以即使多了两个参数也不会有任何问题。
但是在做支付接口的时候(例如:支付宝接口)你就会发现,多出两个隐藏参数会带来很麻烦的问题,因为在在提交表单之后,接收端会对参数名称进行MD5校验,想想多两个参数会带来什么问题。将会直接导致表单校验不通过,然后支付失败的问题。
所以在在通常网站开发中不提倡使用type=image作为表单的提交按钮。
利用图片提交表单有两种方式:
1.<input type="image" src="xxx.gif" onclick="return dosubmit();">
用这种方式提交会发生表单提交两次的现象,经常会造成表单元素被重复提交,数据库被写入异常!!
原因:HTML 中 image的描述是“创建一个图像控件,该控件单击后将导致表单立即被提交”。
2.<img src="xxx.gif" onclick="return dosubmit();">
这种方式提交是正常的没有问题,
所以,请少用第一种方式提交数据尤其是在struts的应用中
注:无论哪种方式提交都在包含在之间,否则,提交无效