ここで少し問題があります。フォームをロードして DOM に割り当てるには、$.post() を含むイベントをトリガーする必要があります。これが完了したら、フォームのフィールドを編集しました。
私は試した:
$.when(function(){
$('#type_rank_field').trigger('change'); //calls the $.post() to load the form
})
.done(function(){
$('#quest_'+questions[i].split('|')[1]).children('option[value="'+questions[i].split('|')[0]+'"]').attr('selected',true);
});
残念ながら、これは機能しません。そのままにしておくと、次のようになります。
$('#type_rank_field').trigger('change');
$('#quest_'+questions[i].split('|')[1]).children('option[value="'+questions[i].split('|')[0]+'"]').attr('selected',true);
変更は次のようになります。
$('#type_rank_field').live('change',function(){
var id = $(this).children('option:selected').attr('id');
var id_edited = get_id_from_id(id);
$.post('ajax/load_questions_of_rank.ajax.php',{id: id_edited},function(data){
//alert(data);
$('#rank_fields').html(data);
});
});
次に、フォームが適切にロードされて DOM にアタッチされる前に、フォームの編集が実行されます。これは JavaScript の人にとってはばかげた質問かもしれませんが、私は主に PHP の人なので、残酷なことはしないでください :-)
ありがとう