我用图片提交form,后台显示提交两次,而用button提交,是正常的,高手来看看。  function postForm() {                                           //这是提交form的js代码
       with (document.getElementById("userForm")) {
action="/pro1.1/UserSer?action=login";
method="post";
submit();
 }
   }
  
<form name="userForm" target="_self"  >
 <input type=button onclick="postForm();" />                       //这种方式提交,是正确的,只提交一次
</form>  
<form name="userForm" target="_self"  >
 <input type=image  src="images/dl.gif" onclick="postForm();">                 //这种方式提交,提交了两次
</form>

解决方案 »

  1.   

     我在控制台打印了输出语句,表明提交了两次;而且我用form表单提交数据,插入数据库,后台已经显示插入成功了,但还会报异常,说违反唯一约束,这点也可表明form提交了两次。
      

  2.   

    我这个页面也没用其他submit或button,就算有的话,我每次都是点击图片提交的,怎么会提交两次呢?高手来看看,可能是哪方面的错误呢?
      

  3.   


    不会的,我都试了几十次了。
    另外这种方法也是可以正常提交的:
    <a href="javascript:postForm();" >
      <img src="images/dl.gif" style="border:0px"/>
    </a>
      

  4.   

    input type=image
    创建一个图像控件,该控件单击后将导致表单立即被提交。
      

  5.   


    找到原因了,下面是传送门。今天又遇到个小问题,单击<input type='image'>的时候会伴随着页面提交。
           由于本来就写有onclick事件,所以在具体是什么导致页面提交上纠缠了好半天。最后用排除法,把整个页面的其他东西一点点删除来排查。发现在只剩form和<input type='image'>的时候还是会提交,把form去掉就不会了。觉得可能是type='image'和type='submit'有同样的效果吧。同事提供了个很好的解决方案,就是在onclick事件中让它返回false。具体写成如下这样,就不会再提交表单了:
         <input type='image' onclick="return false;">
           然后上网查了下,image的描述是“创建一个图像控件,该控件单击后将导致表单立即被提交。”。不知道谁设计的,太有创意了,要不是试出来,打死我也想不到啊。