当Eric Hynds的JQuery Multiselect UI选择框动态更新时,会自动选择第一个选项

Kri*_*ris 11 javascript jquery jquery-ui server-sent-events

我使用http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/的JQuery UI multiselect插件动态地将元素附加到选择框

//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)
Run Code Online (Sandbox Code Playgroud)

现在,我面临一个奇怪的问题.每次更新选择框时,都会自动选择选择框中的第一个选项.有什么方法可以解决这个问题?

谢谢

Mik*_*hah 18

除非您将多个属性添加到元素,否则浏览器将自动选择第一个选项.

在你看到jQuery MultiSelect UI Widget javascript源文件,他们已经实现了以下内容

// browsers automatically select the first option
// by default with single selects
if( isSelected && !o.multiple ){
    labelClasses.push( 'ui-state-active' );
   }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,按照你说的我添加了多个="倍数"的select元素,并修复了问题:) (5认同)