2

让我展示一些示例,以便您清楚地理解问题。

✔️ 示例 1:按预期工作

考虑一个输入<input required />和一些 CSS 来可视化他的有效性。

console.log( document.querySelector('input').checkValidity() )
input:invalid { background: pink; }
<input required />

如果我们通过 Javascript 检查它的有效性状态,inputEl.checkValidity()我们会得到一个,在节目中false进一步查看inputEl.validity{ valueMissing: true, typeMismatch: false, …}

好的,现在一切都是逻辑。

✔️ 示例 2:按预期工作

现在,如果我们向输入添加一个值,验证应该没问题:

console.log( document.querySelector('input').checkValidity() )
input:invalid { background: pink; }
<input required value="John Cena" />

如果我们通过 Javascript 检查它的有效性状态,inputEl.checkValidity()我们会得到一个true.

说得通。

❌ 示例 3:未按预期工作

让我们添加maxlength="5"

console.log( document.querySelector('input').checkValidity() )
input:invalid { background: pink; }
<input required value="John Cena" maxlength="5" />

为什么该字段最初不是无效的?

如果我们通过 Javascript 检查它的有效性状态,inputEl.checkValidity()我们会得到一个true...?

此外,如果我们编辑此输入,则验证将被更新,并且该字段将被标记为无效。

这是完整的例子:https ://codepen.io/Shuunen/pen/XWaqpVo

4

0 回答 0