2009-10-22 92 views
1

我在HTML頁面上獲取了一個表單,在某些情況下,該表單由javascript提交。問題在於瀏覽器窗口將其位置更改爲爲此表單指定的操作URL。有什麼辦法可以阻止它以這種方式工作嗎?以編程方式提交表單時阻止重定向

+0

* JavaScript如何提交表單? – Tomalak 2009-10-22 16:16:51

+0

你想達到什麼目的?你想留在同一頁面,還是想使用AJAX在「背景」中提交表單? – msparer 2009-10-22 16:19:34

+0

我想要在用戶刷新(重新打開)或離開網頁時提交表單 – Vladimir 2009-10-22 16:31:15

回答

2

使用JavaScript庫通過Ajax提交表單(XHR )或提交給iframe

完整的jquery示例:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#yourForm').submit(captureSubmit) 
    }) 

    function captureSubmit(event) { 
     var frm = $(event.originalTarget); 
     $.ajax({ 
      type: frm.attr('method'), 
      url: frm.attr('action'), 
      data: frm.serialize(), 
      success: function(results) { 
       // do stuff 
       alert(results); 
      }, 
      error: function(result) { 
       // handle the error 
       alert(result.status + ' ' + result.statusText); 
      } 
     }); 
     return false; 
    } 
</script> 

<form id="yourForm" action="foo.html" method="POST"> 
    Name: <input type="text" name="name"> 
    <button type="submit">Submit</button> 
</form> 

[編輯]使例子更完整。

+0

有沒有辦法用asp.net ajax做到這一點? – Vladimir 2009-10-22 16:35:55

+0

我在FireFox中測試,並得到一個錯誤,它說「frm.serialize()不是函數」。我能做些什麼呢? – Vladimir 2009-10-22 17:14:55

+0

你需要拉入jquery庫 – 2009-10-22 17:18:26

0

您可以:

  1. 與AJAX提交
  2. 提交到一個iframe