0

私がやろうとしているのは、JSONオブジェクトに基づいて入力フィールドにデータを入力することです。以下は、デフォルト値のフィールドです。

<input type="hidden" name="id"/>
<input id="enabled1" name="enabled" type="checkbox" value="true"> // not sure why value="true" here, by default it should be false

JSONオブジェクトの形式は次のとおりです。

[{enabled:false, id:184}]

JSONオブジェクトに基づいて、そのプロパティを繰り返し、それに応じてフィールドに値を割り当てます。反復関数は次のとおりです。

            for ( var propertyName in aData) {
                if (aData.hasOwnProperty(propertyName)){
                    // check if field exist
                    var elem = $("input[name="+propertyName+"]");
                    var exist = elem.size() == 1;
                    // if exist, update field with selected info
                    if (exist){
                        elem.val(aData[propertyName]);
                    }
                }
            }

反復関数が実行された後、フィールドは次のように表示されます。

<input type="hidden" name="id" value="184">
<input id="enabled1" name="enabled" type="checkbox" value="false">

ここで、チェックボックスにチェックマークを付けて情報をサーバーに送信すると、値をtrueにしたいのですが、どういうわけか値はまだfalseです。ここで何を逃したのですか?

4

2 に答える 2

2

しかし、それは非常に期待されています。チェックボックスを選択しても html 要素の値には影響しないため、チェック済みのステータスが未チェックからチェック済みに変わります。サーバー側で値を取得しようとすると、オーバーライドされた値が返されます。

ここでチェックしてください

于 2012-11-07T05:39:56.980 に答える
0

よくわかりませんが、inputタグ自体に終了タグ(スラッシュ/)が必要だと思います:

<input type="hidden" name="id" value="184"/>
<input id="enabled1" name="enabled" type="checkbox" value="false"/>

チェックしてください。-はん-

于 2012-11-07T03:53:41.063 に答える