全て、
CSSのwidth属性が適用されたHtml.DropDownListFor要素へのモデルデータのバインドに関して、IE8でこの奇妙な問題が発生しています。
親ドロップダウンリストがあり、変更するとデータが検索され、新しいデータを含むモデルが子ドロップダウンリストにバインドされることになっています。
IE8では、Html.DropListFor要素またはJavascript属性のいずれかにCSS幅属性を追加しようとすると、ドロップダウンリストがモデルの新しいデータにバインドされません。
現在width属性がある場合は、IE8でも正常に機能します。
コード:
@Html.DropDownListFor(model => model.EnrollmentToBatchDataContract.Spl, new SelectList(Model.SPLs, "Text", "Value"), "-- Please choose an SPL --", new {id="ddlSPL", name="ddlSPL"})
JS関数:
function updateSPL(data) {
$('#ddlSPL >option').remove();
$('#ddlSPL').append($('<option></option>').html(""));
for (var x = 0; x < data.SPLs.length; x++) {
$('#ddlSPL').append($('<option value="' + data.SPLs[x].Value + '"> ' + data.SPLs[x].Text + '</option>').html(data.SPLs[x].Text));
}
};
モデルが更新され、JS関数に渡されていることを知っています。期待値がデータオブジェクトにあることをテストしました。
また、これはChromeとFFで正しく機能します。
ありがとう、デレク