1. 程式人生 > >解決jquery使用ajax提交button標籤時重複提交了。

解決jquery使用ajax提交button標籤時重複提交了。

這幾天遇到一個jquery的ajax問題。相關程式碼是
<form action="xxx" method="post">
<button type="submit" class="tijiao">提交</button>
</form>




js為
$(".tijiao").click(function(){
  $.post(xxx, $('.alert-form').serialize(), function(result){})
})


在chrome下只發送一次請求,但是在firefox下竟然傳送了兩次,一次是ajax一次是正常的post。
最後到網上查了下資料。原來firefox將button標籤視為input,上述程式碼的效果相當於如下:
<form action="xxx" method="post">
<input type="submit" class="tijiao" value="提交"/>
</form>


執行的效果就是ajax資料之後,瀏覽器的submit又post了一次從而阻塞了ajax的請求。導致ajax收不到返回的資料。
解決辦法:


將button標籤乾脆改成input type屬性改成button,不能用submit屬性。
程式碼如下
<form action="xxx" method="post">
<input type="button" class="tijiao" value="提交"/>
</form>