2010-11-18 24 views
2

私は以下のコードを持っています。 、jQuery:serializeArray()を使用しようとしています

[オブジェクトのオブジェクト]、[オブジェクト オブジェクト]、[オブジェクトのオブジェクト]、[オブジェクト オブジェクト]:私はそれがJSON形式の値とフィールドの名前を示し期待が、ちょうどこれを示します[対象オブジェクト]

<script type="text/javascript"> 

$(document).ready(function() { 


       $('#forma').submit(function() { 

        alert($(this).serializeArray()); 
        return false; 
       }); 

});  

</script> 


<form id="forma"> 
    <div><input type="text" name="a" value="1" id="a" /></div> 
    <div><input type="text" name="b" value="2" id="b" /></div> 
    <div><input type="hidden" name="c" value="3" id="c" /></div> 
    <div> 
    <textarea name="d" rows="8" cols="40">4</textarea> 
    </div> 
    <div><select name="e"> 
    <option value="5" selected="selected">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    </select></div> 
    <div> 
    <input type="checkbox" name="f" value="8" id="f" /> 
    </div> 
    <div> 
    <input type="submit" name="g" value="Submit" id="g" /> 
    </div> 
</form> 

よろしく

ハビ

+0

をコメントアウトコードを使用して、フォーム内のdivに範囲を限定することができますか?データなどのかなりのバージョンが使えますか? – wajiw

答えて

5
[{name: "name", value: "value"}....] 

あなたが見ることができる文字列を取得するには、このような.serialize()を使用します:

alert($(this).serialize()); 

これは、アレイ上$.param()を呼び出すのと同じである.serializeArray()は、このようなオブジェクトの配列を返すためですこのように:

alert($.param($(this).serializeArray())); 

明らかに、これはデータ文字列のフォーマットです。 GETまたはPOSTを使用する場合は、JSON.stringify()を自分でJSONにシリアル化する必要があります。より実践的なコードをしたい人のために

0

fData=$("#myForm").serializeArray(); // or $("#myDiv :input").serializeArray(); //alert(fData.length) // how many inputs got picked up var msg=""; for(var i=0;i<fData.length;i++){ var raKy=Object.keys(fData[i]); msg+="\n"+raKy[0]+":"+eval("fData[i]."+raKy[0])+" "+raKy[1]+":"+eval("fData[i]."+raKy[1]); } alert(msg); あなたは何をあなたがここから取得しようとしている代わりに

関連する問題