Простая функция, которая может быть кому-то полезна.
Цель: опубликовать данные из формы с помощью метода jQuery.post() без перезагрузки страницы.
Задача: получить данные из формы в виде хеш-массива.
function getFormHash(formSelector) { hash = {}; inputs = {}; jQuery(formSelector+' input').Функция просто перебирает все поля ввода, выбора и текстовые области формы, создавая хеш-массив.each(function() { name = jQuery(this).
attr('name'); value = jQuery(this).
attr('value'); type = jQuery(this).
attr('type'); if(name.substr(name.length-2, 2)=='[]') { name = name.substr(0, name.length-2) if(typeof(inputs[name])=='undefined') { inputs[name]=0; } else { inputs[name]++; } if(type.toUpperCase() != 'CHECKBOX' || jQuery(this).
attr('checked') == true) { hash[name+'['+inputs[name]+']'] = value; } } else { hash[name] = value; } }); jQuery(formSelector+' select').
each(function() {n name = jQuery(this).
attr('name'); multiple = jQuery(this).
attr('multiple'); if(typeof(name)!=='undefined' ) { i = 0; jQuery(this).
children('option').
each(function() { if(jQuery(this).
attr('selected')) { value = jQuery(this).
attr('value'); if(multiple==true) hash[name+'['+i+']'] = value; else hash[name] = value; i++; } }); } }); jQuery(formSelector+' textarea').
each(function() { name = jQuery(this).
attr('name'); value = jQuery(this).
html(); hash[name] = value; }); return hash; }
Учитываются имена в форме name[] и множественные для select. Если я что-то пропустил, пожалуйста, скажите мне.
Если уже есть распространённое готовое решение, подскажите и мне.
Теги: #JavaScript #jQuery #отправка формы #хеш #хэш #массив #Чулан
-
Ключи К Дизайну Веб-Сайта
19 Oct, 24 -
Катание На Сноуборде В Пустыне
19 Oct, 24 -
Где Трамвай - Хайтеклохотрон
19 Oct, 24 -
Зенд Студия Неон
19 Oct, 24