Хорошо, кажется, существует проблема с Кодом JS для браузеров Opera, поскольку это только удаляет последний тег опций, который выбран в теге выбора нескольких, может кто-то помогать мне.
Вот HTML для этого:
<select id="actions_list" name="layouts" multiple style="height: 128px; width: 300px;">
<option value="forum">forum</option>
<option value="collapse">collapse</option>
<option value="[topic]">[topic]</option>
<option value="[board]">[board]</option>
</select>
Конечно, это в теге form, но существует тонна больше кода, связанного с этой формой, но здесь соответствующая информация для этого.
Вот JS, который должен обработать это, но только удаляет последнюю выбранную опцию в Opera, не уверенном в других браузерах, но это действительно должно удалить все выбранные опции, не только последнюю выбранную опцию... argg
var action_list = document.getElementById("actions_list");
var i = action_list.options.length;
while(i--)
{
if (action_list.options[i].selected)
{
action_list.remove(i);
}
}
Что не так с этим? Я не могу изобразить его один бит :(
Спасибо :)
Проще всего это сделать с помощью jQuery, но вы можете сделать это с помощью простого Javascript.
Проблема, с которой вы столкнулись, заключается в том, что когда вы удаляете элемент из списка опций Opera, он отменяет выбор всех выбранных элементов, поэтому удаляется только первый. Обходной путь - сначала запомнить, какие элементы были выбраны, прежде чем удалять какие-либо.
var action_list = document.getElementById("actions_list");
// Remember selected items.
var is_selected = [];
for (var i = 0; i < action_list.options.length; ++i)
{
is_selected[i] = action_list.options[i].selected;
}
// Remove selected items.
i = action_list.options.length;
while (i--)
{
if (is_selected[i])
{
action_list.remove(i);
}
}
Вы можете сделать это гораздо проще, используя jQuery:
$('#actions_list option:selected').remove()