描述:
我有一个表格,x:行,y:列
大多数行中都有相同的结构输入(类/类型等),但并非每个行都相同。
我通过 javascipt 按类计算整个表。
在输入带有值的字段时我没有的字段(用户给出的值)
如果该行中没有字段并且该字段是在 javascript 中声明的(按类),[结果应在此处输入]
表达式:
VM36:473 Uncaught TypeError: Cannot set property 'value' of undefined at updateRowX (:473:35) at HTMLTableElement. (:491:9)
因为在这一行中我没有 exp 类的输入。 “additional_free”(如下例)
function updateRowX(row) {
let inputs = {}
for (let input of row.querySelectorAll("input")) inputs[input.className] = new TimeInput(input);
let { start, end, normative, actual, overtime, additional_work, additional_free, nulladditionalnull_work_null, additional_night } = inputs;
if (!start) return; // Not a data row
let diff = actual - normative;
if (overtime == 0) {
additional_free.value = Math.min(0, 1); <---- here
nulladditionalnull_work_null.value = Math.min(0, 1);
}
if (overtime < eightHours && overtime != 0) {
additional_free.value = Math.max(0, overtime); <---- here
nulladditionalnull_work_null.value = Math.min(0, 1);
}
if (overtime > eightHours) {
additional_free.value = eightHours; <---- here
nulladditionalnull_work_null.value = Math.max(0, overtime - eightHours);
}
}
我的问题:
程序是否可以在这些地方检查该变量是否存在?
我是否很好地描述了问题?
最佳答案
1.如果没有类overtime
的输入,overtime
将不等于0
,但是将是未定义
2.在你的代码中,如果有多个具有相同类的输入,最后一个将覆盖前一个
3. 如果定义了overtime
,则其类型将为TimeInput
。不是一个数字。那么如何将其作为数字进行比较呢?
无论如何,如果您只想在 additional_free
不是 undefined
的情况下设置它的值,您可以这样做:
additional_free && (additional_free.value = Math.min(0, 1));
关于javascript - 通过 javascript 检查表中给定类的输入是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250700/