2013-04-04 44 views
0

我們有下面的代碼生成一個複選框(選擇付款方式)。當一個人選擇的冷杉方法(理想/組)被示出與銀行頁面更新忘記更新後的下拉選項(php和js)Magento

現在,當用戶在此之後,頁由F5刷新或AJAX請求時生成的代碼相同的HTML,但該行選擇銀行&的下拉列表我從列表中選擇被遺忘

現在,我將如何監視下拉列表,以及何時更改保存值/選擇(可能甚至只在內存中的Ajax請求,只有整個頁面不重載),當新的Ajax請求返回並打印輸出(沒有選擇)將選擇設置回來?

我們使用Magento的1.7和jQuery

希望有人知道一個漂亮的把戲通過AJAX

產生

<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none"> 
     <li> 
      <label for="<?php echo $_code ?>_bank"><?php echo $this->__(Mage::getStoreConfig('payment/sisow/issuerchoice')) ?> <span class="required">*</span></label><br/> 
      <select id="<?php echo $_code ?>_bank" name="payment[<?php echo $_code ?>_bank]" class="input-text validate-text required-entry"> 
       <option value=""><?php echo $this->__('Selecteer een bank...'); ?></option> 
       <?php foreach($banks as $bank) 
       { 
       ?> 
        <option value="<?php echo $bank['value'];?>"><?php echo $bank['label']; ?></option> 
       <?php 
       } 
       ?> 
      </select> 
      <br/> 
      <?php echo $this->__(Mage::getStoreConfig('payment/sisow/payoff')) ?> 
     </li> 
    </ul> 

以下HTML

現在我們怎麼能挽救<select id="sisow_bank"下選擇(選擇可能通過onchange),但是當通過ajax重新加載塊時觸發卸載事件。

<dl class="sp-methods"> 
    <dt> 
      <input id="p_method_sisow" value="sisow" type="radio" name="payment[method]" title="Betalen met iDEAL (NL)" onclick="payment.switchMethod('sisow')" checked="checked" class="radio" autocomplete="off"> 
      <label for="p_method_sisow">Betalen met iDEAL (NL) </label> 
    </dt> 
     <dd> 

    <ul class="form-list" id="payment_form_sisow" style=""> 
     <li> 
      <label for="sisow_bank">Kies uw bank <span class="required">*</span></label><br> 
      <select id="sisow_bank" name="payment[sisow_bank]" class="input-text validate-text required-entry" autocomplete="off"> 
       <option value="">Selecteer een bank...</option> 
            <option value="01">ABN Amro Bank</option> 
            <option value="02">ASN Bank</option> 
            <option value="04">Friesland Bank</option> 
            <option value="05">ING</option> 
            <option value="06">Rabobank</option> 
            <option value="07">SNS Bank</option> 
            <option value="08">RegioBank</option> 
            <option value="09">Triodos Bank</option> 
            <option value="10">Van Lanschot Bankiers</option> 
            <option value="11">Knab</option> 
          </select> 

我們試圖

jQuery(document).ready(function(){ 

    var item = window.localStorage.getItem('payment_select'); 
    jQuery('select[name=payment[sisow_bank]]').val(item); 

    jQuery('select[name=payment[sisow_bank]]').change(function() { 
     window.localStorage.setItem('payment_select', $(this).val()); 
    }); 


}); 

,但它並不像就緒功能一個div部分的AJAX重裝後調用

回答

0

與jQuery的功能齊全的膽量創建一個新的功能。從jQuery.ready函數調用該新函數(除了函數調用您現在添加的新函數外,現在它將爲空)。在ajax調用結束時,添加一個對新函數的調用。