2012-03-08 46 views
2

下面的方法是從兩個不同的按鈕的onclick事件稱爲:windows.location.href改變導致POST,期待GET

this.changeSearch = function(obj, $tag) { 
    var url = jQuery('#admin_url').val() + '/tools.php?page=cemeteriat&cempage=' + $tag; 
    window.location=url; 
    return; 
}; 

在一個實例中,或形式是否被填充不是,則按下按鈕的結果在預期的GET調用中。另一方面,如果填充表單,而不是GET到期望的URL,那麼將POST執行到在表單的action屬性中分配的url。什麼...

我跟蹤了代碼,並且上面的URL都被分配了相同的值!我已經嘗試使用document.location,window.location和window,location.href而行爲沒有變化。似乎不是瀏覽器特定的。

什麼可能導致windows.location的分配導致表單的POST而不是預期的GET?

+0

你防止提交表單的方法是什麼?這聽起來不像你,但你必須。 – 2012-03-08 18:24:37

+0

您的表單中的按鈕是「submit」嗎? – 2012-03-08 18:24:38

+0

你確定你點擊的按鈕沒有提交你的表格嗎?我想知道什麼是#admin_url以及它放在哪裏......如果它是表單中的按鈕,它可能會提交表單。 – 2012-03-08 18:26:58

回答

3

這是因爲你的其中一個按鈕是表單的提交按鈕,所以它已被提交,並且它永遠不會顯示你正在顯示的代碼。

您應該勾選表單的提交事件並致電event.preventDefault();您無法阻止提交按鈕的點擊處理程序提交表單。

或者,您可以使按鈕不是類型提交。

另一種選擇是,以處理提交事件,並改變從提交處理的形式指向正確的URL和提交

+0

環島你是對的 - 一個被定義爲 ed4becky 2012-03-08 18:29:47