Возвращение результата из jequery's .each () - PullRequest
0 голосов
/ 11 августа 2011

Мой "стек" полностью переполнен, поэтому мне нужна помощь:)

Я пытаюсь получить все значения из FORM и сохранить их в ассоциативном массиве. Вот код:

var dat = [];
$('form[name=' + form.name + '] input[name], form[name=' + form.name + '] select[name], form[name=' + form.name + '] textarea[name]').each(function(i,el) {
   dat[$(this).attr('name')] = $(this).val();
});

Я жду, когда все значения станут в dat после этого фрагмента кода, но похоже, что dat является внутренней переменной лямбда-функции .each (), поэтому она недоступна после завершения .each ().

Как вернуть полученный dat [] из цикла?

1 Ответ

2 голосов
/ 11 августа 2011

Попробуйте это

function() getFormData(){
    var dat = {};

    $('form[name=' + form.name + ']').find('input[name], select[name], textarea[name]').each(function(i,el) {
       dat[$(this).attr('name')] = $(this).val();
    });
    return dat;
}

Эта функция вернет объект json, содержащий все пары имя / значение элементов формы, указанные в селекторе.

...