Задать вопрос
@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".
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Возможно дело в named access, но в любом случае стоит хранить объекты не в глобальном window, а где-нибудь в другом месте, хотя бы для наглядности
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы