Я бы хотел setCustomValidity
на входе непосредственно перед отправкой формы.Это похоже на логический подход:
document.querySelector('form').addEventListener('submit', function(e) {
var button = e.currentTarget.querySelector('input[type="radio"]');
button.setCustomValidity('You did it wrong.');
console.log(button.willValidate); // true
console.log(button.checkValidity()); // false
// Open Dev Tools to see output
debugger;
});
<form>
<label for="radio">
<input id="radio" type="radio">
Radio button
</label>
<br>
<input type="submit">
</form>
Несмотря на установку пользовательской ошибки, форма продолжает отправляться.Есть ли какое-то другое событие, которое мне нужно обработать, что-то, что происходит до , когда браузер решает, что он завершил проверку?
Я понимаю, что мог бы использовать атрибут required
.Вышеупомянутый подход может быть лучше, когда:
- по какой-либо причине вы можете редактировать JavaScript, но не HTML
- , вы просто хотите установить настраиваемое сообщение об ошибке