Можно ли упростить этот код для валидации, используя setCustomValidity?

  • 11 сентября 2023 г. 15:36
Ответы на вопрос 1
Да, можно упростить код для валидации, используя метод setCustomValidity. Вот пример, как можно переписать ваш код:

```javascript
function checkValid(input) {
  if (!input.checkValidity()) {
    input.setCustomValidity('Пожалуйста, заполните поле'); // установка сообщения об ошибке
  } else {
    input.setCustomValidity(''); // сброс сообщения об ошибке
  }
}

function validateForm() {
  var input = document.getElementById("myInput");
  checkValid(input);
}

// Обработчик для проверки при изменении значения поля
var input = document.getElementById("myInput");
input.addEventListener("input", function() {
  checkValid(this);
});
```

Таким образом, мы создали функцию `checkValid`, которая принимает в качестве аргумента элемент `input`. Функция проверяет валидность поля и устанавливает сообщение об ошибке при необходимости с помощью метода `setCustomValidity`. Затем, в функции `validateForm`, мы вызываем `checkValid` с передачей ей элемента `input`.

Для проверки валидности поля при каждом изменении значения используется обработчик события `input`, который вызывает функцию `checkValid` для текущего элемента.

Таким образом, вы можете объединить код для валидации в функцию `checkValid` и использовать ее в любом месте, где вам необходимо проверять валидность поля. Это позволяет сделать код более компактным и переиспользовать его без дублирования.
Похожие вопросы