Есть ряд переменных
var family = document.getElementsByName("family");
var name = document.getElementsByName("name");
var select = document.getElementsByName("select");
var date = document.getElementsByName("date");
var email = document.getElementsByName("email");
var phone = document.getElementsByName("phone");
var text = document.getElementsByName("text");
из них запускаются функции
$(family).change(function(){validname($(family));});
$(name).change(function(){validname($(name));});
$(select).change(function(){validtext($(select));});
$(date).change(function(){validdate($(date));});
$(email).change(function(){validname($(email));});
$(phone).change(function(){validphone($(phone));});
$(text).change(function(){validlenght($(text));});
Вопрос, можно ли их генерировать циклом из массива
что то вроде такого
arr_form = ['family', 'name', 'date', 'select', 'email', 'phone', 'text'];
arr_form.forEach(function(element) {
element = document.getElementsByName(element);
console.log(element[0].value);
});
Я так понимаю проблема в области видимости, потому такое решение не взаимодействует с функциями. Пробовал вариант с let но наверное что то не так прописал.
В идеале целью было создать массив ключ-опция, где ключ имя переменной, опция - функция. Что то вроде такого
// значения по умолчанию
let [firstName="Гость", lastName="Анонимный"] = [];
alert(firstName); // Гость
alert(lastName); // Анонимный