代码中有隐藏的输入,默认情况下必须为 TRY,并且可以使用下拉框进行更改。
代码:
HTML:
<div class="form-group">
<label class="col-sm-3 control-label">Fiyat</label>
<div class="col-sm-4 col-md-3 col-lg-2">
<div class="input-group input-group-sm">
<input type="text" placeholder="Fiyat" class="form-control js-listing-price js-numeric" name="price.amount" />
<div class="input-group-btn btn-default">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="js-currency-preview">TL</span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right">
<li><a data-value="TRY">TL</a></li>
<li><a data-value="USD">$</a></li>
<li><a data-value="EUR">€</a></li>
</ul>
<input type="hidden" value="TRY" class="js-listing-price-currency js-currency" name="price.currency">
</div>
</div><!-- /input-group -->
</div>
</div>
JavaScript:
$('.dropdown-menu').on('click', 'li a', function(e) {
e.preventDefault();
$('.js-currency-preview').text($(this).text());
$('.js-listing-price-currency').val($(this).data('value'));
});
};
除此 js-currency 字段外,所有其他字段均有效。
由于 Backbone Binder 无法看到隐藏输入中的隐藏更改,因此它们不得在页面中更改。
可以通过添加来解决trigger('change');
到代码:
$('.js-listing-price-currency').val($(this).data('value')).trigger('change');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)