我们有以下代码生成一个复选框(选择支付方式)。当选择第一种方法(Ideal/bank)时,会显示一个带有banks
的下拉列表。现在当用户选择银行&在此之后,页面通过F5或ajax请求刷新,生成相同的html代码,但我从列表中选择的银行被遗忘了
现在,我如何监控下拉菜单,当改变保存值/选择(甚至可能只在内存中为ajax请求只有在整个页面不重新加载),当新的ajax请求返回并打印输出(没有选择)设置选择回来?
我们使用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生成的
现在我们如何保存<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());
});
});
但是它看起来不像在ajax重新加载div节后调用ready函数
使用jQuery ready函数的核心创建一个新函数。从jQuery中调用这个新函数。Ready函数(现在将为空,除了对您正在添加的新函数的函数调用)。在ajax调用结束时,添加对新函数的调用。