@CoCoCoder
Новичок в веб-программировании,только учусь. :)

.setCustomValidity() is not a function почему?

let name = document.querySelector("#name"),
     age = document.querySelector("#age");
const errorText = {
  name: "Укажите верное имя!",
  age: "Укажите возраст!",
};

const regExp = {
  name: /^[a-zA-Zа-яА-Я"][a-zA-Zа-яА-Я-" ]+[a-zA-Zа-яА-Я"]?$/,
  age: /^([0-2]?[0-9])$/
};

let validate = function(key, value) {
  if (!(regExp[key].test(value))) {
    window[key].setCustomValidity(errorText[key]);
  }
  else {
    window[key].setCustomValidity("");
  }
};

name.addEventListener("input", function() {
  let name__value = name.value;
  validate("name", name__value);
  this.removeEventListener(event.type,arguments.callee,event.eventPhase);
}, false);

age.addEventListener("input", function() {
  let age__value = age.value;
  validate("age", age__value);
  this.removeEventListener(event.type,arguments.callee,event.eventPhase);
}, false);


При всё этом при вводе именно в форму "NAME" выскакивает эта ошибка, а в идентичную форму "AGE" нет!
Я полностью проверял, что нет аналогичных ID на странице, что скрипт успевает загружаться полностью, переписывал "name" под шаблон "age", переставлял их местами, но всё равно при вводе в input с ID = "name" ошибка:
"Uncaught TypeError: window[key].setCustomValidity is not a function".
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Возможно дело в named access, но в любом случае стоит хранить объекты не в глобальном window, а где-нибудь в другом месте, хотя бы для наглядности
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽