2013-03-31 49 views
1

表單提交使用jQuery我試圖使用jQuery提交表單,但不是默認的動作腳本,它的形式,我想後變量提交給不同的動作腳本代替。使用非默認的動作腳本

更具體地講,這是我的默認形式的作品以特定的方式,當用戶點擊提交按鈕:

<form method="post" action="something.php" id="myForm"> 
</form> 

我所試圖做的是提供上述證據的形式,但不是使用默認something.php作爲動作腳本,我想使用foo.php

這甚至可能嗎?這是我試過了,沒有成功(後瓦爾的arent獲得通過的foo.php頁):

$.post('foo.php', '#myForm', function(data) { 
    alert(data); 
}); 

我明白如何做到這一點的任何建議。

非常感謝提前!

回答

1

是的,這是可能的,當然,但你應該傳遞一個鍵值對,您可以使用.serializeArray()方法。

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    $.post('foo.php', $(this).serializeArray(), function(data) { 
     // alert(data); 
    }); 
}); 

如果你有一個單擊處理程序:

$('#element').click(function(e){ 
    //e.preventDefault(); 
    $.post('foo.php', $('#myForm').serializeArray(), function(data) { 
     // alert(data); 
    }); 
}); 
+0

感謝您的回覆。我怎樣才能觸發這個提交功能?我試圖手動觸發它...因爲我所做的是我提供的代碼放在一個單擊事件,所以當用戶點擊某個特定的按鈕時,上面的代碼得到執行,但上面的代碼似乎是一個事件監聽器,所以我需要手動觸發它... – AnchovyLegend

+0

@MiGusta如果你有一個點擊處理程序,你不需要聽取提交事件,我已經更新了答案。 – undefined

+0

非常感謝,這正是我需要的! – AnchovyLegend

2

如果你只是想要更改的形式員額,然後更改action屬性用JavaScript。

$('#myForm').attr('action', 'foo.php'); 

只有您打算更改默認的行爲,而不是使用正常的整個頁面刷新的XHR使用$.post()

+0

感謝您的回覆。好吧,我想暫時改變action屬性。我想默認動作腳本保持... – AnchovyLegend

+0

@MiGusta然後你可以存儲原始值,並在需要時替換它。 – alex

+0

+1,謝謝,我很喜歡你的方法,但是我最終使用了另一個,因爲它需要更少的代碼修改。你的方式是一個更簡單的解決方案:D – AnchovyLegend