2012-07-02 149 views
0

我想寫一個自定義的magento模塊,並且我已經完成了所有工作,除了一個問題以外完美工作。jquery提交表單一次

該模塊是一個帶有4個單選按鈕的窗體。他們在結帳頁面上都是空白的,並且我已經設置了它們,這樣當您單擊它時,它會提交表單並在小計中重新加載購物車頁面,並帶有「額外費用」。

我的問題是,我需要第一個選項「自動提交」頁面加載。但是我已經嘗試了很多不同的東西,不能想出一種方法來使用jquery .submit()函數來僅提交表單一次。因爲它現在是它的工作方式,除了它在無限循環中加載頁面。

有沒有辦法說submit()只有一次?

+0

您是否嘗試將表單提交給自己?如果您將表單提交到其他頁面,您的問題將得到解決。 –

回答

1

你可以設置默認的單選按鈕的服務器端,而不是有一個額外的提交/刷新週期,但如果你堅持這樣做的客戶端...

我在隨後的刷新假設先前的選擇將被保留(因爲你的服務器端代碼迴應以前選擇的值?),所以你可以測試是否有任何無線電被檢查,如果不認爲這是第一次也是唯一一次自動提交?

$(document).ready(function() {  
    var $radios = $('#yourFormId input[name="yourRadioButtonGroupName"]'); 

    if (!$radios.is(":checked")) { 
     // No radios currently checked, so check the first and submit 
     $radios.eq(0).prop("checked",true); 
     $("#yourFormId").submit(); 
    } 
}); 

.is() method將「檢查當前匹配組針對一個選擇器,元件,或jQuery對象元素並返回true如果這些元素中的至少一個給定的參數相匹配。」

+0

謝謝,這正是我需要的。 –

+0

不客氣。 (對不起,我只是注意到我把'!'從'if'條件中移出來了,所以我已經將它編輯成...) – nnnnnn