0

こんにちは、フォームから取得した値を使用して JSON オブジェクトを作成しようとしています。何らかの理由で、コードが機能していません。入力のすべての名前をトリプルチェックしたので、それらが正しいと想定できます。JSON オブジェクトをインスタンス化する行に問題を切り分けました。

    function createJSON()
    {
        if (document.forms["formIn"]["gender"][0].checked == true)
        {
            var g= "male";
        }
        else if (document.forms["formIn"]["gender"][1].checked == true)
        {
            var g= "male";
        }
        var jsonobj={"name":document.forms["formIn"]["name"].value, "surname":document.forms["formIn"]["surname"].value, "email":document.forms["formIn"]["email"], "dob":document.forms["formIn"]["dob"].value, "password":document.forms["formIn"]["password"].value, "cpassword":document.forms["formIn"]["confirm_password"].value, "gender":g}
        var jsonstr=JSON.stringify(jsonobj);
        alert(jsonstr);
        var newjobj=JSON.parse(jsonstr);
        alert(newjobj.email);
    }

みんなの助けに感謝します。メールの後に .value がありませんでした。他の多くの愚かな間違いもクリアしましたが、それでも私の 2 番目のアラートは [オブジェクト] [オブジェクト] しか表示されません。

4

2 に答える 2

1

これを試してください:

function createJSON()
{
    var g = "unknown",
        jsonobj,
        jsonstr,
        newjobj;

    if (document.forms["formIn"]["gender"][0].checked == true)
    {
        g = "male";
    }
    else if (document.forms["formIn"]["gender"][1].checked == true)
    {
        g = "female";
    }
    jsonobj={"name":document.forms["formIn"]["name"].value, "surname":document.forms["formIn"]["surname"].value, "email":document.forms["formIn"]["email"], "dob":document.forms["formIn"]["dob"].value, "password":document.forms["formIn"]["password"].value, "cpassword":document.forms["formIn"]["confirm_password"].value, "gender":g}
    jsonstr=JSON.stringify(jsonobj);
    alert(jsonstr);
    newjobj=JSON.parse(jsonstr);
    alert(newjobj.email);
}
于 2012-08-21T19:54:36.557 に答える
0

;JSON オブジェクトをインスタンス化する場所の最後にaがありません。それ以外は問題ないようですが。

于 2012-08-21T19:40:09.760 に答える