【发布时间】:2022-08-12 17:54:39
【问题描述】:
我有一个简单的应用程序,我只想在没有发现错误时启用计算按钮(如果值不是数字或值小于 0,则会记录错误)。我使用 && 和 || 执行一些条件检查操作员。但是,当仅正确填写了一个输入且没有错误时,该按钮将启用。但是,当指定了明确的错误值时,该按钮将再次被禁用。
代码:https://github.com/KaustubhMaladkar/Tip-Calculator
if (!peopleError && !billError) {
submit.removeAttribute(\"disabled\");
}
if (billError || peopleError) submit.setAttribute(\"disabled\", \"\")
-
您可能不会因为缺少输入而发出错误。因此,如果您还应该首先检查人员和账单。第二个 if 可能只是一个 else 案例
-
@Nestoro 效果很好,但是有一个问题。如果我在一个输入中输入 0,然后在另一个输入中输入 1,则启用我的按钮
-
这可能是由存储为字符串的值引起的。对于字符串,规则是 !!\"0\" === !!\"1\" && !!\"0\" === true,只有像 \"\" 这样的空字符串等于 false
-
@Nestro,请进一步解释并告诉我如何防止这种情况发生
-
如果您想将其视为缺失值,您可以专门检查“0”。或使用 Number(bill) 和 Number(people) 将 \"0\" 视为数字 0。有关类型更正的所有解释都可以在这里找到:dev.to/promhize/…(请查看 \'falsy and truthy\' 部分)具体情况)
标签: javascript form-submit short-circuiting