【问题标题】:Update price shown onchange更新时显示的价格
【发布时间】:2017-10-17 05:36:17
【问题描述】:

我只是想显示一个价格,以更新 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>

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

你可以这样做:

$('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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-27
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多