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

Как использовать имя переменной вместо значения?

В общем, есть переменная "age", которая хранит в себе информацию об одном из input-ов.

Есть функция, предназначенная для addEventListener, вида:

let validate = function(name) {
    if (!(regExp.name.test(name_value))) {
      name.setCustomValidity(error.name);
    }
    else {
      name.setCustomValidity("");
    }
}


Так вот, как вместо "name" мне везде использовать "weight"? Анонимную функцию создавать нельзя, потому что иначе я не смогу удалить потом eventListener, вариант с 'weight' вместо name пробовал, вариант с квадратными скобками не пускает. Уже 3 часа с этим сижу. Что можете подсказать?

То есть чтобы получилось в последствии:

if (!(regExp.age.test(age_value))) {
      age.setCustomValidity(error.age);
    }
    else {
      age.setCustomValidity("");
    }
}
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Ткну наугад и предположу, что у вас в переменной хранится имя другой переменной и нужно её резолвить:
if (!(regExp[age].test(window[age + '_value']))) {
      window[age].setCustomValidity(error[age]);
    }
    else {
      window[age].setCustomValidity("");
    }
}


Если же у вас модуль, а не просто скрипт, то искомую переменную нужно явно привязать к window. А лучше это сделать в любом случае.

А ещё лучше завести словарь для связки инпута и его имени, чтобы не засорять window или использовать event.target (или аналог).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы