@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("");
    }
}
  • Вопрос задан
  • 118 просмотров
Решения вопроса 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 (или аналог).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект