我有一个函数,用于对两个输入字段的输入求和并将其分配给一个。我的函数如下所示:
function sum(id) {
nextId = id+2
console.log($("#id_unit_market_price"+nextId).val())
$("#id_unit_market_price"+id).val() += $("#id_unit_market_price"+nextId).val();
}
我调用 sum 函数的函数如下所示:
function makeSub(subRow) {
var empTab = document.getElementById('empTable');
document.getElementById("id_unit_market_price"+subRow.parentNode.parentNode.rowIndex).value = 0
addRow(true);
sum(subRow.parentNode.parentNode.rowIndex)
}
console.log($("#id_unit_market_price"+nextId).val())
打印输入的实际值。但是当我尝试做$("#id_unit_market_price"+id).val() += $("#id_unit_market_price"+nextId).val();
时我收到错误 (index):325 Uncaught ReferenceError: Invalid left-hand side in assignment
at sum ((index):325)
at makeSub ((index):318)
at HTMLInputElement.onclick ((index):1)
我还尝试将这些值解析为 float ,但这也不起作用。
任何帮助,将不胜感激。提前致谢
最佳答案
to assign a sum to value
这就是问题所在。
您可以为变量或属性赋值。您无法将一个值分配给一个值。
12 = 1
根本没有意义。如果将 12
替换为函数的返回值,仍然没有意义。
如果您想更改表单控件的值,则 jQuery val
函数接受参数。
jq.val(new_value)
因此:
const old_value = $("#id_unit_market_price"+id).val();
const value_to_add = $("#id_unit_market_price"+nextId).val();
const new_value = old_value + value_to_add;
$("#id_unit_market_price"+id).val(new_value)
或在一个声明中:
$("#id_unit_market_price"+id).val(
$("#id_unit_market_price"+id).val() +
$("#id_unit_market_price"+nextId).val()
)
<小时/>
请记住,表单控件的值是字符串,因此您可能需要convert them to numbers因此 +
会将它们添加在一起,而不是连接它们。
const old_value = +$("#id_unit_market_price"+id).val();
const value_to_add = +$("#id_unit_market_price"+nextId).val();
const new_value = old_value + value_to_add;
$("#id_unit_market_price"+id).val(new_value)
关于javascript - Uncaught ReferenceError : Invalid left-hand side in assignment when trying to assign a sum to value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60378944/