我对此的投入很少:
<form>
<input type="number" name="tax[]">
<input type="number" name="tax[]">
<input type="number" name="tax[]">
</form>
我需要在更改或键入时更新这些输入的总和。
所以我的代码如下:
function updatePriceWithTaxe() {
$('input[name=tax[]]').each(function() {
sum += Number($(this).val());
});
alert(sum);
}
$('input[name=tax[]]').on('change keyup', function() {
updatePriceWithTaxe();
});
你知道为什么它不起作用吗?
警报不会触发,并且出现此错误:
Error: Syntax error, unrecognized expression: name=STX_Amount[]
谢谢。
答案 0 :(得分:2)
解析选择器的解析器被表示属性的方括号和名称中的方括号混淆。您必须在属性选择器中用双引号将名称值引起来。
function updatePriceWithTaxe() {
var sum = 0;
$('input[name="tax[]"]').each(function() {
sum += Number($(this).val());
});
console.log(sum);
}
$('input[name="tax[]"]').on('change keyup', updatePriceWithTaxe);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="number" name="tax[]">
<input type="number" name="tax[]">
<input type="number" name="tax[]">
</form>
答案 1 :(得分:0)
使用此构造函数键入名称(为名称添加 "
)
$('input[name="tax[]"]')
和updatePriceWithTaxe()
应该更改为:
function updatePriceWithTaxe() {
var sum = 0;
$('input[name="tax[]"]').each(function(key, element) {
sum += Number(element.value);
});
alert(sum);
}
:var sum = 0
添加到函数中,因为每次调用updatePriceWithTaxe()
时,变量的值必须为 0 ,并且sum
用新值计算
答案 2 :(得分:0)
如果您只想计算总和,则可以这样尝试:
const taxInputElements = $('[name="tax[]"]');
taxInputElements.on('change keyup', function(event) {
let sum = 0;
taxInputElements.each(function(key, element) {
sum += Number(element.value);
});
console.log("Current sum: " + sum);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="number" name="tax[]">
<input type="number" name="tax[]">
<input type="number" name="tax[]">
</form>