javascript - html表单输入javascript求和字段

标签 javascript php jquery html

我有一个表格,您可以选择客户是否纳税、我们是否给予折扣、默认价格、折扣后价格、税后价格和总价。

这是我所拥有的:

<table width="339" border="0" cellpadding="0">
    <tr>
        <td width="98">Taxes</td>
        <td width="115">Discount</td>
        <td width="118">Default price</td>
    </tr>
    <tr>
        <td>
            <select class="select" name="taxes">
                <option value="no" selected>no taxes</option>
                <option value="yes">19% taxes</option>
            </select>
        </td>
        <td>
            <select class="select" name="discount" onChange="updateInput()">
                <option value="5" selected>5% discount</option>
                <option value="10">10% discount</option>
                <option value="20">20% discount</option>
            </select>
        </td>
        <td>
            <input type="text" class="input140" name="cost" id="cost" value="1000">
        </td>
    </tr>
    <tr>
        <td>Price after discount</td>
        <td>Taxes</td>
        <td>Total Price to pay</td>
    </tr>
    <tr>
        <td>
            <input type="text" name="price" value="">
        </td>
        <td>
            <input type="text" name="taxes" value="0">
        </td>
        <td>
            <input type="text" name="total" value="0">
        </td>
    </tr>
</table>
<script>
    function updateInput() {
        var discount = document.getElementsByName("discount")[0].value;
        var cost = document.getElementsByName("cost")[0].value;
        document.getElementsByName("price")[0].value = cost - (cost * (discount / 100));
    }
</script>

我正在尝试使此表单正常工作,但如果我重复使用的 JavaScript,它就不起作用。

这是演示 fiddle

https://jsfiddle.net/nte6xqdv/6/

我们的默认价格 1.000 工作正常,如果我们向客户添加折扣,则它会更改为折扣后的价格

但是 如果我对 19% 的税费选择"is",则不会改变任何内容,并且折扣加税后支付的总价也不起作用。有什么想法吗?

最佳答案

您的代码几乎没问题,只需要一些小修复:您为选择“taxes”和输入“taxes”(现在为“ttaxes”)使用相同的名称,您为税收分配了值“yes” (我改了19),最后,复制粘贴自己的代码来计算折扣(用于计算税费)。现在您只需要做一件事:计算两者的总和(总价)。在这里,更改由注释箭头指出:

<html>
  <body>
<table width="339" border="0" cellpadding="0">
  <tr>
    <td width="98">Taxes</td>
    <td width="115">Discount</td>
    <td width="118">Default price</td>
  </tr>
  <tr>
    <td><select class="select" name="taxes" onChange="updateInput()">
      <option value="no" selected>no taxes</option>
      <option value="19">19% taxes</option> <!-- <====================== -->
    </select></td>
    <td><select class="select" name="discount" onChange="updateInput()">
      <option value="5" selected>5% discount</option>
      <option value="10">10% discount</option>
      <option value="20">20% discount</option>
    </select></td>
    <td><input type="text" class="input140" name="cost" id="cost" value="1000"></td>
  </tr>
  <tr>
    <td>Price after discount</td>
    <td>Taxes</td>
    <td>Total Price to pay</td>
  </tr>
  <tr>
    <td><input type="text" name="price" value=""></td>
    <td><input type="text" name="ttaxes" value="0"></td> <!-- <====================== -->
    <td><input type="text" name="total" value="0"></td>
  </tr>
</table>
<script type="text/javascript">
function updateInput(){
    var discount = document.getElementsByName("discount")[0].value;
    var cost = document.getElementsByName("cost")[0].value;
    document.getElementsByName("price")[0].value = cost - (cost * (discount / 100));

    var taxes = document.getElementsByName("taxes")[0].value; // <======================
    if ( isNaN( taxes ) ) // IF "no taxes" IS SELECTED...
         document.getElementsByName("ttaxes")[0].value = 0;
    else { cost = document.getElementsByName("cost")[0].value;
           document.getElementsByName("ttaxes")[0].value = (cost * (taxes / 100));
         }

    document.getElementsByName("total")[0].value = 
      parseFloat( document.getElementsByName("price")[0].value ) +
      parseFloat( document.getElementsByName("ttaxes")[0].value );
}
</script>
  </body>
</html>

关于javascript - html表单输入javascript求和字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30879386/

相关文章:

jquery - HTML 下拉菜单删除 LI 元素之间的空白

javascript - DOMParser parseFromString 仅在迭代结果主体 childNodes 时删除 Node

javascript - 保持刷新的 jQuery 垂直选项卡

javascript - 使用通用 JS 文档优化静态网站的 CSS/JS 导入

php - php中的登录错误消息

php - 正则表达式返回 true,但一本书的作者说它不应该

javascript - AngularJS 指令 $watch 双向绑定(bind)

php - 插入选定复选框的隐藏字段

javascript - 使用具有多个对象集的 javascript 解析 json

php - 这个 jQuery 选择器的问题