2012-06-04 56 views
0

我想提交表單而不重新加載頁面,並使用$ .post將數據傳遞到外部php文件。我在防止表單提交時重新加載頁面時遇到問題。如何在點擊提交按鈕時取消重新加載?取消表單提交默認行爲jQuery Mobile

下面是代碼:

<script> 
    $(document).ready(function(e){ 
     $("#formajax").live("submit", function(e){ 
      var $this = $(this); 
      e.preventDefault(); 
      $.post("process.php", $this.serialize(), function(data){ 
       alert("DATA PASSED!"); 
      }); 
      return false; 
     }) 
    }) 
</script> 

<form method="post" action="" id="formajax"> 
    <input type="text" id="samplefield" name="samplefield" value=""/> 
    <input type="submit" value="Submit"/> 
</form> 

謝謝!

+1

我不確定你使用的是什麼版本的jQuery,但考慮轉移到.on(),因爲.live()在1.7中不推薦使用。另外,jQuery文檔聲明.delgate()比舊版本的jQuery中的.live()更好。 – patrickn

回答

1

我不熟悉live方法用jQuery做什麼,但它似乎是你的問題的根源。如果您將live替換爲bind,在我的測試中,頁面不會重新加載,並且我得到「數據已通過」提示。

<script> 
      $(document).ready(function(e){ 
        $("#formajax").bind("submit", function(e){ 
          var $this = $(this); 
          e.preventDefault(); 
          $.post("index.php", $this.serialize(), function(data){ 
            alert("DATA PASSED!"); 
          }); 
          return false; 
        }) 
      }) 
    </script> 

    <form method="post" action="" id="formajax"> 
      <input type="text" id="samplefield" name="samplefield" value=""/> 
      <input type="submit" value="Submit"/> 
    </form> 
+0

這很奇怪,我試圖用綁定取代現場,但無濟於事。順便說一句,謝謝你的努力! –