У меня есть список, который пользователи могут добавлять / удалять. Для добавления есть текстовое поле и кнопка добавления, которая добавляет текст в начало списка, если его еще нет. Использование jQuery для подключения событий и добавления списка.
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 он соответствует моему стилю минимальной ширины), и нажатие кнопки «Добавить» не имеет никакого эффекта. Обратите внимание, что когда я писал это, я мало знал о javascript и даже меньше о jQuery, поэтому все было соединено с тем, что я мог узнать из Google. Если есть более правильный способ сделать это, я открыт для этого.