我有两个使用JavaScript计算数量和增值税数量的数字。现在我该怎么做?
{{rowCount = 0}}
{% for picture in pictures[item.id]%}
<td style="margin-top: {{count += 25}}px">
<img src="{{url_for('static', filename=picture)}}" style="z-index:0;" />
</td>
{% endfor %}
然后是应付金额
<tr>
<th>Amount: </th>
<td><input id="amount" type="text" name="amount" class="form-control" required />
</td>
</tr>
<tr>
<th>VAT 20% Amt: </th>
<td>
<input id="vatAmt" type="text" name="vatAmount" class="form-control" />
</td>
</tr>
<tr>
<th>Total Amount: </th>
<td>
<span id="totalAmount"></span>
</td>
</tr>
我的JavaScript代码如下:
<div class="col-md-6" >
<h3>Amount Due: £ <span id="amountValue"></span></h3>
</div>
有人可以帮我解决这个问题吗?非常感谢任何帮助。 TIA
答案 0 :(得分:0)
value
处理程序中未定义 keyup
。您需要定义它:
$("#vatAmt").keyup(function () {
var value = $("#amount").val(); // <--- here
var valueVat = $(this).val();
var sum = value + valueVat;
$("#totalAmount").text(sum);
}).keyup();
在函数内定义变量时,该变量仅在该函数内可用。另一个选择是在全局范围内定义它,但我通常更喜欢将范围限制为仅在需要时使用。在keyup
的{{1}}处理程序中,您需要两个值,因此您将有两个对#varAmt
的调用才能获得两个值。
注意:可能,您可能还想使用.val()
或类似的方法来执行添加操作:
parseInt
JavaScript对于类型非常宽容,但如果您依赖于类型,则有时会出现错误。并且$("#vatAmt").keyup(function () {
var value = parseInt($("#amount").val()); // <--- here
var valueVat = parseInt($(this).val()); // <--- and here
var sum = value + valueVat;
$("#totalAmount").text(sum);
}).keyup();
返回一个字符串,因为输入是文本,即使该文本碰巧是数字字符。
答案 1 :(得分:0)
可以做到
<tr>
<th>Amount: </th>
<td><input id="amount" type="number" name="amount" class="form-control" required />
</td>
</tr>
<tr>
<th>VAT 20% Amt: </th>
<td>
<input id="vatAmt" type="number" name="vatAmount" class="form-control" />
</td>
</tr>
<tr>
<th>Total Amount: </th>
<td>
<span id="totalAmount"></span>
</td>
</tr>
<div class="col-md-6">
<h3>Amount Due: £ <span id="amountValue"></span></h3>
</div>
var value;
$("#amount").keyup(function() {
value = $(this).val();
$("#amountValue").text(value);
})
$("#vatAmt").keyup(function() {
var valueVat = $(this).val();
var sum = Number(value) + Number(valueVat);
$("#totalAmount").text(sum);
}).keyup();