javascript - 使用 jquery 通过单选更改输入文本字段值

标签 javascript 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 上的代码.

最佳答案

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">

Fiddle here

关于javascript - 使用 jquery 通过单选更改输入文本字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497479/

相关文章:

javascript - 检查数组中的值并返回另一个值

javascript - 使 HTML <td> 类似于 Zurbs 响应式表格

javascript - IE(移动)不显示触摸子元素

javascript - 为什么执行 Object.create(null) 之后将其原型(prototype)设置为 Object.prototype 将不允许执行 Object.prototype 中的方法

javascript - 在javascript中连接以访问全局预定义的变量?

jQuery $ ("#Div").height() 返回未定义

jquery - 如何使用 Jquery 的 Coolinput 在密码字段中显示提示 "Enter your password",然后在用户键入时使用星号隐藏输入?

Javascript 变量在撇号后被 chop

javascript - 算法:将列表从一个顺序重新排列到另一个顺序的最佳方法?

javascript - Vue渲染顺序