ajaxコールから配列を受け取り、配列の要素を使用して一連のラジオボックスを作成します。 jqmマークアップを適用するようにリフレッシュしようとするまでうまく動作します。私は予想される4つのうち2つ、または3つのうちの1つを期待しています。私は問題を説明するためにフィドルを作成しましたが、フィドルはマークアップをまったく適用していません。ちょうど正しい数のボックスを表示します。フィドルは:https://jsfiddle.net/wlukasz/9hno6pyh/7/です。ここに私のhtmlです:Jqueryが動的に追加されたすべてのラジオボタンを表示していません
<table class="std-table">
<tr>
<td><div id="areas"></div></td>
</tr>
</table>
とJavaScript:
$(document).on('pagebeforeshow', '#property-details-page', function(){
all_areas = new Array();
var Q001Data = "sql=Q001&dbcall=sql_get_results_array&memid="+<?php echo $member_id?>+"&propid="+<?php echo $property_id?>;
$.ajax({ // ### AJAX to get ALL AREAS on page load ###
url:"pl_process_ajax_call_property_features.php",
type:"POST",
data : Q001Data,
success:function(msg){
$("#areas").html('<fieldset id="all-areas-radio" data-role="controlgroup" data-mini="true"></fieldset>');
all_areas = JSON.parse(msg);
var textToInsert = '';
var i;
for (i = 0; i < all_areas.length; i++) {
var area = JSON.stringify(all_areas[i][0]);
alert(area+i);
textToInsert += '<input type="radio" class="all-areas" name="property-area" id="' + area + '" value="' + area + '"><label for="' + area + '">' + area + '</label>';
alert(textToInsert);
}
$("#all-areas-radio").append(textToInsert);
$("[type=radio]").checkboxradio();
$("[data-role=controlgroup]").controlgroup().controlgroup("refresh");
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Error Q001!");
},
}); // ### AJAX to get ALL AREAS on page load ###
}); // ### document.on
私も "チェック" のボタンのラベルの色を変更するには、このCSSを使用します。
<style>
#all-areas-radio div .ui-radio .ui-radio-on {
background: orange !important;
}
</style>
すべての期待ラジオボックスが画面に表示さjqmマークアップを次のように適用するまで:
$("[type=radio]").checkboxradio();
$("[data-role=controlgroup]").controlgroup().controlgroup("refresh");
これは、2つのボックスに正しくマークアップが適用され、4つのエンハンスのみが表示されます。私が3箱を期待するならば、私はただ1つだけ増強されたものと2つの他のものが見えない。 jquery 1.11とjqm 1.45を実行します。助けてください。
アップデートは、ちょうどインチ配列値は、それぞれ、二重引用符で囲まれたAJAX呼び出しから出てきます。私はajaxなしでそれを実行しようとすると、手動で配列を構築し、値は引用符なしで出てきて、すべてがうまく動作します。だから二重引用符が私のコードに影響するのはなぜですか? – Voytek
あなたの質問は今、二重引用符を削除する方法は?ところで、あなたのフィドルは働いていません。 – deblocker
これは私の最初のフィドルです;-)、それは私に追加されたラジオボックスを表示していた...とにかく、私は今二重引用符を削除し、スクリプトは意図したとおりに動作します。私は今、私の質問に答えてマークします。私はこれらの引用符を必要としませんでした。あなたは引用符をしたい場合は、質問は何をするために残っている? – Voytek