Первый вариант, автоматически выбранный при выборе окна с JQuery Multiselect UI от Eric Hynds, обновляется динамически
Im, используя плагин мультиплексирования пользовательского интерфейса JQuery http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/ для динамического добавления элементов в поле выбора
//Make filter cars multiselect
$("#cars_filter").multiselect({noneSelectedText:'Select cars'});
function populateCarfilter(){
var opts="<option value=''>Select cars</option>";
$.each(markers, function(idx, mar){
if(mar.getVisible() && mar.get("car"))
opts+="<option value='" + mar.get("id") + "'>" + mar.get("driver") + " - " + mar.get("car") + "</option>";
});
if($("#cars_filter").html()!=opts){
var id = $("#cars_filter").val()
$("#cars_filter").html(opts);
$("#cars_filter").val(id);
$("#cars_filter").multiselect('refresh');
}
}
populateCarfilter(); //This gets called every 2 secs automatically by SSE (server sent events)
Теперь у меня возникает странная проблема. Первый вариант в поле выбора выбирается автоматически при каждом обновлении окна выбора. Любой способ исправить эту проблему?
Спасибо
Ответы
Ответ 1
Браузеры автоматически выберет первый вариант, если вы не добавите в элемент несколько атрибутов.
Смотрите в jquery файл javascript jQuery MultiSelect UI Widget, они реализованы после
// browsers automatically select the first option
// by default with single selects
if( isSelected && !o.multiple ){
labelClasses.push( 'ui-state-active' );
}
Ответ 2
и вы всегда можете убедиться, что он работает путем циклического перемещения элементов и установки значения, которое не выбрано так:
click: function(event, ui){
if(!ui.checked)
{ $.each( $('#select2 option'),function(i2, element2)
{
if( $(element2).val() === ui.value )
{
if( $(element2).is(':selected') ) {
$(element2).attr('selected',false);
}
$(element2).remove().appendTo('#select1');
}
});
}
}
Это происходит только в том случае, если вы обновляете динамически и хотите, чтобы это было так... в моем случае я обновлял/передавал элементы из одного раскрывающегося списка в другое, и оба имели атрибут multiple = 'multiple', поэтому Мне нужно было убедиться, что при нажатии на один из них удаляется, а затем добавляется его к базовому элементу выбора, но по-прежнему первый вариант. Надеюсь, что это поможет кому-то по дороге.. это хороший плагин