У меня есть текстовый ввод с minlength
.Когда пользователь вводит текст, состояние ввода validity
обновляется немедленно.Если я изменю значение в коде, состояние достоверности будет сброшено, чтобы оно показывалось как действительное - даже при нарушении ограничения validity.valid
равно true.
const input = document.getElementById("input");
const label = document.getElementById("label");
document.getElementById("rightButton").addEventListener("click", evt => {
input.value = "ABCDE";
});
document.getElementById("wrongButton").addEventListener("click", evt => {
input.value = "AB";
});
setInterval(() => label.innerHTML = input.validity.valid, 250);
<input type="text" id="input" minlength="4">
<span id="label"></span>
<hr/>
<button id="rightButton">Make It Right</button>
<button id="wrongButton">Make It Wrong</button>
(NB: stacksnippets.net
, кажется, сейчас не работает, но вышеизложенное иллюстрирует мою проблему.)
Почему не действует автоматическая проверкапроверка запускается, когда я назначаю input.value
?Это где-то задокументировано?Есть ли метод, который я могу вызвать, чтобы вызвать внутренний процесс проверки браузера, вместо того, чтобы выполнять свои собственные проверки и вызывать setCustomValidity
?