うまくいけば、これは理にかなっています...
ダイアログボックスをロードするページがあります。ダイアログ ボックスのシェルは、実際にはメイン ページの HTML に存在します (display:none)。ダイアログ ボックスには、次の呼び出しで部分ビューがロードされています。
$('.partial').load(url, function (html) { $('.partial')[0].value = html; });
この部分ビューには 2 つの選択ボックスがあります。最初の値が変更された場合、2 番目の値は .getJason 呼び出しを介して設定する必要があります。その呼び出しは以下です。
$.getJSON(url, function (result) {
var dropList = $("#select");
var options = "";
$.each(result, function () {
options += '<option value="' + this.ID + '">' + this.Name+'</option>';
});
$("#select2").empty().append(options); // doesn't work located on the partial view
$("#test2").empty().append(options); // works located on main page
});
.getJason 呼び出しは、ページが最初に読み込まれた後に部分ビューが読み込まれるため、onChange="populateSecondSelect()" を指定した関数を介して呼び出されます (この状況では .on は機能しません)。
問題は、オプションを 2 番目の選択にロードしようとしている部分です。jQuery .append は要素を認識しません。メインページの「Test2」に値をロードしようとすると機能するため、呼び出しが機能していることはわかっています。
ロードされた部分ビューで .append する要素をjQueryに認識させるにはどうすればよいですか?