ユーザが追加/削除できるリストボックスがあります。追加するには、既に存在しない場合はテキストをリストの先頭に追加するテキストボックスと追加ボタンがあります。 jQueryを使用してイベントをフックアップし、リストの前に追加します。jQueryをListboxに追加するとIE9で機能しない
リストボックスとボタンのHTML:
<select data-val="true" data-val-required="The BuyingReportRecipients field is required." id="recipients" multiple="multiple" name="BuyingReportRecipients" style="min-width:160px"></select>
<input type="text" id="new-recipients" />
<button id="add-to-recipients">Add</button>
<button id="remove-from-recipients">Remove Selected</button>
および関連のjavascript:
<script src="/BuyingReport/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
.
.
.
function addListValue(listName) {
var value = $("#new-" + listName).val();
var values = [];
$("#" + listName + " *").each(function() { values.push(this.value) });
if (values.indexOf(value) == -1) {
$("#" + listName).prepend("<option selected=\"selected\">" + value + "</option>");
}
return false;
}
function removeSelectedListValues(listName) {
$("#" + listName).find("option:selected").remove();
return false;
}
$(document).ready(function() {
$("#add-to-recipients").click(function() { return addListValue("recipients"); });
$("#remove-from-recipients").click(function() { return removeSelectedListValues("recipients"); });
});
このすべてはChromeとFirefoxで正常に動作しますが、IE9は協力しません。リストボックスは空の四角形としてレンダリングされます(Chromeでは最小幅のスタイルに従います)。addをクリックしても効果はありません。私がこれを書いたとき、私はjavascriptについてほとんど、jQueryについてはそれほど知りませんでした。だから、私はGoogleから学べるものとすべてが結びついていました。これについてもっと正しい方法があれば、私はそれを公開しています。
jQueryのどのバージョンを使用していますか? IE9の1.7.1で正常に動作します。 –
1.5.1を使用して、コードを編集しました。私は1.7.1で試してみます – Bort