【问题标题】:how to find discount from total sum using javascript如何使用javascript从总和中找到折扣
【发布时间】:2020-10-15 05:44:38
【问题描述】:

我有一个表,用户可以根据需要动态添加一行。正如您在表格下方看到的那样,它是动态添加的最后一列值的总和。我需要在一个文本框(名称为折扣)的总和上方添加两个文本框,从用户那里获取输入(作为数字),第二个文本框(名称为finalsum)将输出显示为值(finalsum = sum-discount) .如果用户没有给出任何输入值,那么折扣最初应该为零。并且finalsum应该等于sum

如果您想了解更多信息,请告诉我,谢谢!任何帮助将不胜感激:)

<html>
  <head>
    <title>Add/Remove dynamic rows in HTML table</title>

    <script language="javascript">
      function addRow(tableID) {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        if (rowCount < 4) {
          // limit the user from creating fields more than your limits
          var row = table.insertRow(rowCount);

          var colCount = table.rows[0].cells.length;
          row.id = "row_" + rowCount;
          for (var i = 0; i < colCount; i++) {
            var newcell = row.insertCell(i);
            newcell.outerHTML = table.rows[0].cells[i].outerHTML;
          }
          var listitems = row.querySelectorAll("input, select");

          for (i = 0; i < listitems.length; i++) {
            listitems[i].setAttribute("oninput", "calculate('" + row.id + "')");
          }
        } else {
          alert("Maximum Passenger per ticket is 4.");
        }
      }
      function calculate(elementID) {
        var mainRow = document.getElementById(elementID);
        var myBox1 = mainRow.querySelectorAll("[name=qty]")[0].value;
        var myBox3 = mainRow.querySelectorAll("[name^=sel]")[0].value;
        var total = mainRow.querySelectorAll("[name=total]")[0];
        var myResult1 = myBox1 * myBox3;
        total.value = myResult1;

        // calculate the totale of every total
        var sumContainer = document.getElementById("totalOfTotals");
        var totalContainers = document.querySelectorAll("[name=total]"),
          i;
        var sumValue = 0;
        for (i = 0; i < totalContainers.length; ++i) {
          sumValue += parseInt(totalContainers[i].value);
        }
        sumContainer.textContent = sumValue;
      }
    </script>
  </head>
  <body>
    <input type="button" value="Add" onClick="addRow('dataTable')" />

    <table id="dataTable" class="form" border="1">
      <tbody>
        <tr id="row_0">
          <p>
            <td>
              <label>Quantity</label>
              <input
                type="number"
                required="required"
                name="qty"
                oninput="calculate('row_0')"
              />
            </td>

            <td>
              <label for="sel">Price</label>
              <select name="sel" id="sel" oninput="calculate('row_0')" required>
                <option value="" disabled selected>Choose your option</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
              </select>
            </td>
            <td>
              <label for="total">Total</label>
              <input
                type="text"
                required="required"
                class="small"
                name="total"
              />
            </td>
          </p>
        </tr>
      </tbody>
    </table>
    <div>
      <tr>
        <span>Sum</span>
        <span id="totalOfTotals">0</span>
      </tr>
    </div>
  </body>
</html>

【问题讨论】:

    标签: javascript html discount


    【解决方案1】:

    解决方案在这里!!!

    <html>
      <head>
        <title>Add/Remove dynamic rows in HTML table</title>
    
        <script language="javascript">
          function addRow(tableID) {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;
            if (rowCount < 4) {
              // limit the user from creating fields more than your limits
              var row = table.insertRow(rowCount);
    
              var colCount = table.rows[0].cells.length;
              row.id = "row_" + rowCount;
              for (var i = 0; i < colCount; i++) {
                var newcell = row.insertCell(i);
                newcell.outerHTML = table.rows[0].cells[i].outerHTML;
              }
              var listitems = row.querySelectorAll("input, select");
    
              for (i = 0; i < listitems.length; i++) {
                listitems[i].setAttribute("oninput", "calculate('" + row.id + "')");
              }
            } else {
              alert("Maximum Passenger per ticket is 4.");
            }
          }
          function calculate(elementID) {
            var mainRow = document.getElementById(elementID);
            var myBox1 = mainRow.querySelectorAll("[name=qty]")[0].value;
            var myBox3 = mainRow.querySelectorAll("[name^=sel]")[0].value;
            var myBox4 = mainRow.querySelectorAll("[name=discount]")[0].value;
            var total = mainRow.querySelectorAll("[name=total]")[0];
            var myResult1 = myBox1 * myBox3;
            total.value = myResult1-myBox4;
    
            // calculate the totale of every total
            var sumContainer = document.getElementById("totalOfTotals");
            var totalContainers = document.querySelectorAll("[name=total]"),
              i;
            var sumValue = 0;
            for (i = 0; i < totalContainers.length; ++i) {
              sumValue += parseInt(totalContainers[i].value);
            }
            sumContainer.textContent = sumValue;
          }
        </script>
      </head>
      <body>
        <input type="button" value="Add" onClick="addRow('dataTable')" />
    
        <table id="dataTable" class="form" border="1">
          <tbody>
            <tr id="row_0">
              <p>
                <td>
                  <label>Quantity</label>
                  <input
                    type="number"
                    required="required"
                    name="qty"
                    oninput="calculate('row_0')"
                  />
                </td>
    
                <td>
                  <label for="sel">Price</label>
                  <select name="sel" id="sel" oninput="calculate('row_0')" required>
                    <option value="" disabled selected>Choose your option</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                  </select>
                </td>
                <td>
                  <label for="discount">Discount</label>
                  <input
                    type="text"
                    required="required"
                    class="small"
                    name="discount"
                    oninput="calculate('row_0')"
                  />
                </td>
                <td>
                  <label for="total">Total</label>
                  <input
                    type="text"
                    required="required"
                    class="small"
                    name="total"
                  />
                </td>
              </p>
            </tr>
          </tbody>
        </table>
        <div>
          <tr>
            <span>Sum</span>
            <span id="totalOfTotals">0</span>
          </tr>
        </div>
      </body>
    </html>

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 2019-11-05
      • 2021-11-13
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多