我想通过小计和运输成本的值显示总价,但是我的代码无法在输入文本字段中获得小计值。用jquery通过无线电改变输入文本字段值
例子:
Subtotal: 200
Shipping A: 100 (checked)
Shipping B: 200
Totalprice: 300
or
Subtotal: 200
Shipping A: 100
Shipping B: 200 (checked)
Totalprice: 400
这里是我的jsfiddle代码。
我想通过小计和运输成本的值显示总价,但是我的代码无法在输入文本字段中获得小计值。用jquery通过无线电改变输入文本字段值
例子:
Subtotal: 200
Shipping A: 100 (checked)
Shipping B: 200
Totalprice: 300
or
Subtotal: 200
Shipping A: 100
Shipping B: 200 (checked)
Totalprice: 400
这里是我的jsfiddle代码。
使用
.val()
设定值不.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">
非常感谢,但如果我想从价值中获得价值=“200”代码,它会像'var totals = parseInt($(“input = [value]”).val());'right? –
是的。但是,如果它是独特的元素,那么去与ID ..' $(#ID_SELECTOR).val()' – Rayon
哦,非常感谢,:) –
的问题把你的代码改写为某些用户无法访问jsfiddle等外部服务。 –
您可能希望将代码包含在问题中而不是指向jsfiddle的链接,对其他用户更有用。见http://meta.stackexchange.com/questions/149890/prevent-posts-with-links-to-jsfiddle-and-no-code – akiraspeirs