0

チェックボックスを生成する次のコードがあります(支払い方法を選択します)。最初の方法 (理想/バンク) を選択すると、ドロップダウン リストにバンクが表示されます。

ユーザーが銀行を選択すると、F5 または ajax 要求によってページが更新され、同じ HTML コードが生成されますが、リストから選択した銀行は忘れられます。

さて、ドロップダウンをどのように監視し、変更されたときに値/選択を保存しますか(おそらく、ページ全体がリロードされない場合にのみajaxリクエストのメモリにのみ保存されます)、新しいajaxリクエストが返されて出力(selectionなし)が設定されたときに印刷されますセレクションバック?

Magento 1.7 と jquery を使用しています。

誰かが気の利いたトリックを知っていることを願っています

<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 は AJAX 経由で生成されます

次に、選択したオプションを (おそらく onchange を介して) 保存し<select id="sisow_bank"、ブロックが ajax を介して再ロードされたときに unload イベントをトリガーするにはどうすればよいでしょうか。

<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リロード後にready関数が呼び出されたようには見えません

4

1 に答える 1

0

jQuery 対応関数の中身を使って新しい関数を作成します。その新しい関数を jQuery.ready 関数から呼び出します (これは、現在追加している新しい関数への関数呼び出しを除いて空になります)。ajax 呼び出しの最後に、新しい関数への呼び出しを追加します。

于 2013-04-04T19:06:51.673 に答える