2011-08-11 13 views
0

私の「スタック」は完全にあふれているので、私は助けを必要と:))(jQueryの.eachから結果を返す

私はFORMからのすべての値を取得し、連想配列に保存しようとしています。私は、コードのこの作品の後にDATになったすべての値をお待ちしております

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は.each()ラムダ関数の内部変数なので、それは.each後に使用できないように見えます:ここでは、コードです() 完成されました。

結果のdat []をサイクルから戻す方法はありますか?

+1

$( "#formId")でフォームをシリアライズすることはできません。Serialize(); – RubbleFord

+1

は私のオブジェクトのようです... 'var dat = {};' var dat = {}; 'の代わりに' var dat = {]; 'を試してください –

+0

質問、なぜこれが必要ですか?フォームからすべての情報を取得するためにjQueryのserialize()(http://api.jquery.com/serialize/)関数を使用できますか? – Alex

答えて

2

この関数は、セレクタで指定されたすべてのフォーム要素の名前/値のペアを含むJSONオブジェクトが返され、この

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; 
} 

を試してみてください。

+1

'var dat = {};'は問題を解決します。 – Epsiloncool

関連する問題