Привет, ребята, я думал, что сделаю быстрый пост об этой удивительной функции, которая может сэкономить ваше время, если вам нужно создать массив элементов ввода формы и получить их значения.
Синтаксис jQuery .serializeArray ()
jQuery .serializeArray () может использоваться для кодирования набора элементов формы в виде массива имен и значений. Примечание: serializeArray () выбирает только входы с атрибутом name.
$('selector').serializeArray();
jQuery .serializeArray () Базовый пример
Name
Email
Phone
Message
(function($) {
var fields = $(':input').serializeArray(); /*creates a JSON type array structure of name and value pairs*/
jQuery.each(fields, function (i, field) {
console.log('input' + i + ': ' + field.name + " = " + field.value);
/* output
* input0: name = Enter your name
* input1: email = Enter your email
* input2: phone = Enter your phone
* input3: message = Enter your message
*/
});
})(jQuery);
Попробуйте код в Firebug в этой форме: http://www.jquery4u.com/contact/
Распространенные ошибки
Если вы видите эту ошибку: TypeError: $ («: input») имеет значение null, это может быть потому, что:
- Вам нужно указать пространство имен jQuery, потому что вы используете больше библиотек jQuery (таких как Mootools или Prototype). Если вы не знаете, как это сделать, прочитайте здесь: jQuery без конфликтов
Обновление: 16/07/2011: Этот скрипт может быть полезен для создания URL-параметров из формы:
$form = $('#formid');
var url = $form.attr('action') + '?' + $form.serialize();
console.log(url);
//result action url + ? + param1 = value1 & param2 = value2 etc...