我有一个表单,它根据用户下拉选择将产品价格输出到输入字段。它是一个提交最终计算价格的表单,因此价格必须保留为表单输入。
但是,我希望隐藏输入,而使用静态文本显示span,静态文本会更新以反映当前在输入中计算的内容。
更改输入本身的代码驻留在其他地方,不能更改。我需要一个以某种方式利用这一点的解决方案。
我不知道这是怎么回事,但这是我能想到的全部:
$("#priceField").change(function() {
$('#price').html($(this).val());
});
#priceField
是隐藏输入。#price
是html范围。
我猜我需要以某种方式在任何输入发生变化时调用它?我不确定,但我敢肯定在这上面抓我的头...
发布于 2018-06-16 06:07:20
如果您要在设置后调用或trigger $('#priceField').change()
,这将会起作用:
$('#priceField').change(function () {
// text is more appropriate
$('#price').text($(this).val());
});
$('#applyBtn').click(function() {
calcPrice();
//Call the change manually
$('#priceField').change();
});
$('#triggerBtn').click(function() {
calcPrice();
//Trigger the event
$('#priceField').trigger('change');
});
function calcPrice() {
$('#priceField').val(Math.random() * 10);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="priceField" type="hidden">
<button id="applyBtn" type="button">Call .change()</button>
<button id="triggerBtn" type="button">Trigger</button>
<span id="price"></span>
但这很容易出错,所以我强烈建议建议直接在计算价格的地方设置$('#price').text()
值。如果看不到更多的代码,就不能真正地做任何例子。
https://stackoverflow.com/questions/50883130
复制相似问题