javascript - 对 radio 输入值求和

标签 javascript

我对此很陌生,所以我一直在尝试改编其他人的代码来满足我的需求,我需要将第一个名称组中的单选选项添加到第二个名称组中,然后显示在文本框中底部。

底部文本框中没有显示任何内容。我哪里出错了?

Javascript:

$("input[type=radio]").click(function() 
{
    var total = 0;
    $("input[type=radio]:checked").each(function() 
    {
        total += parseFloat($(this).val());
    });

    $("#totalSum").val(total);
});

HTML:

<strong>Choose a base package:</strong>
<input id="item_0" type="radio" name="pkg" value="1942" />Base Package 1 - $1942
<input id="item_1" type="radio" name="pkg" value="2313" />Base Package 2 - $2313
<input id="item_2" type="radio" name="pkg" value="2829" />Base Package 3 - $2829
<strong>Choose an add on:</strong>
<input id="item_10" type="radio" name="ext" value="0" />No add-on - +$0
<input id="item_12" type="radio" name="ext" value="2146" />Add-on 1 - (+$2146)
<input id="item_13" type="radio" name="ext" value="2455" />Add-on 2 - (+$2455)
<input id="item_14" type="radio" name="ext" value="2764" />Add-on 3 - (+$2764)
<input id="item_15" type="radio" name="ext" value="3073" />Add-on 4 - (+$3073)
<input id="item_16" type="radio" name="ext" value="3382" />Add-on 5 - (+$3382)
<input id="item_17" type="radio" name="ext" value="3691" />Add-on 6 - (+$3691)
<strong>Your total is:</strong>
<input id="totalSum" type="text" name="totalSum" readonly="readonly" size="5" value="" />

最佳答案

您的 JavaScript 在生成 HTML 之前执行,因此它不会“看到”未生成的 INPUT 元素。对于 jQuery,您可以将 Javascript 粘贴在 HTML 的末尾,也可以像这样包装它:

<script type="text/javascript">
  $(function() { //jQuery trick to say after all the HTML is parsed.
    $("input[type=radio]").click(function() {
      var total = 0;
      $("input[type=radio]:checked").each(function() {
        total += parseFloat($(this).val());
      });

      $("#totalSum").val(total);
    });
  });
</script>

编辑:此代码对我有用

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
  <strong>Choose a base package:</strong>
  <input id="item_0" type="radio" name="pkg" value="1942" />Base Package 1 - $1942
  <input id="item_1" type="radio" name="pkg" value="2313" />Base Package 2 - $2313
  <input id="item_2" type="radio" name="pkg" value="2829" />Base Package 3 - $2829
  <strong>Choose an add on:</strong>
  <input id="item_10" type="radio" name="ext" value="0" />No add-on - +$0
  <input id="item_12" type="radio" name="ext" value="2146" />Add-on 1 - (+$2146)
  <input id="item_13" type="radio" name="ext" value="2455" />Add-on 2 - (+$2455)
  <input id="item_14" type="radio" name="ext" value="2764" />Add-on 3 - (+$2764)
  <input id="item_15" type="radio" name="ext" value="3073" />Add-on 4 - (+$3073)
  <input id="item_16" type="radio" name="ext" value="3382" />Add-on 5 - (+$3382)
  <input id="item_17" type="radio" name="ext" value="3691" />Add-on 6 - (+$3691)
  <strong>Your total is:</strong>
  <input id="totalSum" type="text" name="totalSum" readonly="readonly" size="5" value="" />
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script type="text/javascript">
      $("input[type=radio]").click(function() {
        var total = 0;
        $("input[type=radio]:checked").each(function() {
          total += parseFloat($(this).val());
        });

        $("#totalSum").val(total);
      });
    </script>
</body>
</html>

关于javascript - 对 radio 输入值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863842/

相关文章:

javascript - jQuery - 加法

javascript - 获取多维 JSON 变量的行数

javascript - 根据用户的输入匹配用户并从中选择一个

javascript - Algolia Geo Search 看不到排名信息

javascript - 将 Django 模板转换为 pdf

javascript HTMLCollection 访问

javascript - 如何在 Javascript 中对用户定义的类进行 JSON.stringify?

javascript - iPhone 应用程序或 Mobile Safari 的动画 PNG 文件的替代方案,目标是模拟短视频剪辑的即时播放

javascript - 获取 Google Static Maps API 的西南 Angular 和东北 Angular

javascript - 如何在悬停在边框上时触发