Używam multiselect JQuery UI wtyczki przez http://www.erichynds.com/jquery/jquery-ui -Multiselect-widget / do dynamicznego dołączenia elementów do pola wyboru

//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)

Teraz jestem skierowany do dziwnego problemu. Pierwsza opcja w polu SELECT zostanie wybrana automatycznie za każdym razem, gdy pole wyboru jest aktualizowane. Jakikolwiek sposób naprawienia tego problemu?

Dziękuję Ci

11
Kris 27 wrzesień 2012, 15:03

2 odpowiedzi

Najlepsza odpowiedź

Przeglądarki automatycznie wybiorą pierwszą opcję, chyba że dodasz wiele atrybutu do elementu.

Patrz w You You You Bquery Multiselect UI Widget JavaScript Plik źródłowy, wdrożono na następstwie

// browsers automatically select the first option
// by default with single selects
if( isSelected && !o.multiple ){
    labelClasses.push( 'ui-state-active' );
   }
18
Miki Shah 27 wrzesień 2012, 11:18

I zawsze możesz upewnić się, że działa poprzez zapętlenie przez elementy i ustawienie wartości, aby nie wybrać, jak:

  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');
                    }        
        });
 }

}

Jest to tylko w przypadku, gdy dynamicznie aktualizujesz i chcesz upewnić się, że jest więc ... W moim przypadku byłem aktualizowany / przechodzący przez elementy z jednego rozwijanego do drugiego i oba miało wielokrotność = "wielokrotnego" atrybutu, więc musiałem Upewnij się, że po kliknięciu w jednym został usunięty, a następnie dołączając go do podstawowego wyboru, ale nadal pierwsza opcja była zawsze wybrana .. Mam nadzieję, że pomaga komuś w dół drogi. To ładna wtyczka

1
Jean Paul A.K.A el_vete 2 październik 2012, 01:25