2016-02-19 51 views
0

我想通过小计和运输成本的值显示总价,但是我的代码无法在输入文本字段中获得小计值。用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代码。

+0

的问题把你的代码改写为某些用户无法访问jsfiddle等外部服务。 –

+0

您可能希望将代码包含在问题中而不是指向jsfiddle的链接,对其他用户更有用。见http://meta.stackexchange.com/questions/149890/prevent-posts-with-links-to-jsfiddle-and-no-code – akiraspeirs

回答

2

使用.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">

Fiddle here

+0

非常感谢,但如果我想从价值中获得价值=“200”代码,它会像'var totals = parseInt($(“input = [value]”).val());'right? –

+0

是的。但是,如果它是独特的元素,那么去与ID ..' $(#ID_SELECTOR).val()' – Rayon

+1

哦,非常感谢,:) –

相关问题