0

私は現在、jQuery/Ajaxによって状態を保存/呼び出すことができるさまざまなラジオボタンを備えたフォームをまとめています。返されたAjaxJSONデータはループされ、返された値に応じてラジオボタンが設定されます。これはすべて正常に機能しますが、選択したラジオボタンを変更して、何らかの理由で実際のラジオボタンの値を再保存すると、 get .serialized()は、変更した新しい値ではなく、以前のAjaxセット値を引き続き表示します。コンセプトが機能することを証明するために他のさまざまなテストページを試したので、これは本当に混乱します。

他の誰かがラジオボタンが視覚的に更新されるのを見たことがありますが、変更を取得せずにシリアル化しますか?

私が見ているもののデモはここで見ることができます。ドロップダウンメニューから名前を選択すると、ラジオボタンに入力されるAjax呼び出しが開始されます。[保存]ボタンをクリックすると、Ajaxが発生した後も変更されないserialize()ラジオボタンのデータが表示されます。

なぜこれが正しく機能しないのかを解明しようとすると、私は気が狂います!どんな助けでも本当にありがたいです。

ダン

4

1 に答える 1

0

これを解決するために何時間も費やした後、問題は私が行っていた Ajax 成功関数にありました。

         $.each(data, function(key,value){
            $("[name='" + key + "']").val(value);
         });

        for(var key in data){
            $('input#' +key+'-'+data[key]).prop('checked',true);
        }

        $('input:radio').button("refresh");       

これらは両方とも同時に発生し、混乱を引き起こします。

解決するには、最初の操作を次のように変更する必要がありました

                for(var key in data){
                    $('input#' +key+'-'+data[key]).prop('checked',true);
                }

うまくいけば、これは将来誰かを助けるでしょう。

ダン

于 2012-09-12T11:31:38.140 に答える