【问题标题】:checking the existence of input with a given class in the table by javascript通过javascript检查表中给定类的输入是否存在
【发布时间】:2020-02-17 00:53:04
【问题描述】:

描述:

我有一张桌子,x:rows, y:colums

大多数行是相同的结构输入(类/类型等),但不是每个人。

我通过 javascipt 按类计算整个表。

在输入字段时我没有的值(用户给定的)

如果该行中没有字段并且该字段在javascript中(按类)声明,[应在此处输入结果]

对于 exp.:

VM36:473 Uncaught TypeError: Cannot set property 'value' of undefined 在 updateRowX (:473:35) 在 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);
        }
    }

我的问题:

如果这个变量存在,程序是否可以检查这些地方?

我是否很好地描述了问题?

【问题讨论】:

  • 也分享 html。也许是一个 jsfiddle :)

标签: javascript html asp.net


【解决方案1】:

1.如果没有overtime类的输入,overtime将不等于0,而是undefined

2. 在您的代码中,如果有多个具有相同类的输入,则最后一个将覆盖前一个

3. 如果定义了overtime,它将是TimeInput 类型。不是数字。那么如何将其作为一个数字进行比较?

无论如何,如果你想设置additional_free 的值,只有不是undefined,你可以这样做:

additional_free && (additional_free.value = Math.min(0, 1));

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多