更新价格显示在更改

时间:2014-05-09 02:28:44

标签: javascript jquery html

我只是想显示一个价格,以更新onchange事件。现在,这只是向我展示了onchange id的两个值,我只是希望有人点击一个复选框,然后它会更新已经显示给新值的价格。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 <head>
 </head>
 <body>
 <table>
    <tr>
      <td>
      <input type="checkbox" id="extras" value="25.00" onChange="calc()">
      </td>
     <td>
      <input type="checkbox" id="rush" value="35.00" onChange="calc()">
      </td>
      <td>
           <input id="total" type="text" value="90.00" />
      </td>
 </tr>
 </table>
 </body>
 <script type='text/javascript'>
      function calc() {    
          var extras = document.getElementById('extras').value;
          var rush  = document.getElementById('rush').value;
          var result = document.getElementById("total");
          result.value = extras + rush;
      }
 </script>
 </html>

2 个答案:

答案 0 :(得分:2)

你可以这样做:

$('input[type=checkbox]').change(function () {
    var val = parseFloat(this.value),
        totalVal = parseFloat($('#total').val());
    if (this.checked) {
        $('#total').val((totalVal + val).toFixed(2));
    } else {
        $('#total').val((totalVal - val).toFixed(2));
    }
});

<强> Fiddle Demo

答案 1 :(得分:0)

非jquery解决方案可以检查checked值。您还需要将文本值转换为float,否则它将不是有效的总和,而只是字符串的连接。

var extrasCB = document.getElementById('extras');
var extras = 0;
if(extrasCB.checked) {
    extras = parseFloat( extrasCB.value );
}