我想显示总价以及小计和运费值的总和,但我的代码无法在输入文本字段中获取小计值。
示例:
Subtotal: 200
Shipping A: 100 (checked)
Shipping B: 200
Totalprice: 300
or
Subtotal: 200
Shipping A: 100
Shipping B: 200 (checked)
Totalprice: 400
这是我在 jsfiddle 上的代码.
最佳答案
Use
.val()
to set value not.html()
另请注意,$(".subtotal")
将返回jQuery
包装对象,但我们需要该元素的值,因此使用 parseInt($(".subtotal").val())
获取该输入字段的解析值。使用.text()
而不是.html()
如果您想获得text
值大于html
试试这个:
function updateCosts() {
var totals = parseInt($(".subtotal").val());
$.each($('#content input[type=radio]:checked'), function() {
totals += parseInt($.trim($(this).next('.shippingcost').text()));
});
$('#totalPrice').val(totals);
}
$(document).ready(function() {
$('#content input[type=radio]').change(updateCosts);
//_____________________________^^^^^^^_^^^^^^^^^^^
//Use change event instead of click, handler can be attached this way
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
Subtotal:
<input type="text" value="200" name="subtotal" class="subtotal">
<div id="content">
A:
<input type="radio" name="shippingcost" checked> <span class="shippingcost"> 100 </span> B:
<input type="radio" name="shippingcost"> <span class="shippingcost"> 200 </span>
</div>
Total price:
<input type="text" name="totalprice" id="totalPrice">
关于javascript - 使用 jquery 通过单选更改输入文本字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497479/