首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我将两个输入相乘,显示在一个“总计”框中,但它不会乘以其他行

我将两个输入相乘,显示在一个“总计”框中,但它不会乘以其他行
EN

Stack Overflow用户
提问于 2017-04-12 14:10:30
回答 1查看 34关注 0票数 1

代码语言:javascript
复制
 function calculate() {
        var myBox1 = document.getElementById('qid').value;
        var myBox2 = document.getElementById('uid').value;
        var result = document.getElementById('subsubtotal');
        var myResult = myBox1 * myBox2;
        result.value = myResult.toFixed(2);
    }
代码语言:javascript
复制
<tr>
    <td><form><input type="number" oninput="calculate()" id="qid" data-quantity name="qamount"  min="0" data-validation="number" class="qinput txt" value="{{Quantity}}" /></form></td>
    <td><form><input type="text" data-validation="length" data-validation-length="max100" class="dinput" value="{{Details}}" /></form></td>
    <td><form><input type="number" oninput="calculate()" id="uid" data-unitprice name="uamount" min="0" data-validation="number" data-validation-allowing="float" class="uinput txt" value="{{UnitPrice}}" /></form></td>
    <td><form><input readonly id="subsubtotal" name="totalamount" class="sinput txt" value="{{Subtotal}}" /></form></td>  
</tr>

这就是我所说的,它只是乘以上面的一行,而不是下面的一行。代码计算顶部的行,但是下面的行(通过单击按钮添加)等等不计算。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-12 14:17:05

默认情况下,来自<input>的值将是一个string。在乘法之前,您需要解析它们。

正如@Ronen 所提到的,我认为在form中包装内容没有任何意义。

更新:

这是因为id属性。id在整个文档中应该是唯一的。因此,下一行中的输入框应该有不同的id。检查下面的示例。

代码语言:javascript
复制
function calculate(obj) {
  var tr = obj.parentNode.parentNode;

  var myBox1 = tr.cells[0].children[0].value;
  var myBox2 = tr.cells[2].children[0].value;
  var result = tr.cells[3].children[0];
  var myResult = parseFloat(myBox1) * parseFloat(myBox2);
  result.value = myResult.toFixed(2);
}
代码语言:javascript
复制
<table>
  <tr>
    <td><input type="number" oninput="calculate(this)" id="qid1" data-quantity name="qamount" min="0" data-validation="number" class="qinput txt" value="{{Quantity}}" /></td>
    <td><input type="text" data-validation="length" data-validation-length="max100" class="dinput" value="{{Details}}" /></td>
    <td><input type="number" oninput="calculate(this)" id="uid1" data-unitprice name="uamount" min="0" data-validation="number" data-validation-allowing="float" class="uinput txt" value="{{UnitPrice}}" /></td>
    <td><input readonly id="subsubtotal" name="totalamount" class="sinput txt" value="{{Subtotal}}" /></td>
  </tr>

  <tr>
    <td><input type="number" oninput="calculate(this)" id="qid2" data-quantity name="qamount" min="0" data-validation="number" class="qinput txt" value="{{Quantity}}" /></td>
    <td><input type="text" data-validation="length" data-validation-length="max100" class="dinput" value="{{Details}}" /></td>
    <td><input type="number" oninput="calculate(this)" id="uid2" data-unitprice name="uamount" min="0" data-validation="number" data-validation-allowing="float" class="uinput txt" value="{{UnitPrice}}" /></td>
    <td><input readonly id="subsubtotal" name="totalamount" class="sinput txt" value="{{Subtotal}}" /></td>
  </tr>
</table>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43372002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档