Bootstrap-Select在变更事件上获取最新选择的选项

时间:2014-10-07 10:08:52

标签: jquery

我有这个选择下拉菜单,我正在使用Bootstrap-select:

http://silviomoreto.github.io/bootstrap-select/

<select id="properties" name="properties[]" class="selectpicker" data-live-search="true" multiple>
</select>

$( document ).ready(function() {

  // instantiating the main properties
  loadProperties(0);

$('#properties').on('change', function(){
    var optionSelected = $("option:selected", this);
    alert(optionSelected.data('parent'));
});

});

function loadProperties(param) {
  var propSelect = $('#properties');

  $.get("json/" + param + ".json",function(options,status){
    $.each(options, function(val, text) {
      var option = $('<option data-parent="' + param + '" class="prop-option"></option>').val(val).html(text);
      propSelect.append(option);
    });
    $('.selectpicker').selectpicker('refresh');
  });
}

问题是我需要选择最后一个选项而不是每个选定的选项。 我只能使用on change方法,因为Bootstrap-select不会在选项上返回任何单击事件。

如何使用on Change事件仅获取最后选择的选项?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

试试这个:您可以将最后选择的选项存储为某个data属性,让我们说data-prev并为每个change事件更新它。见下面的代码 -

$( document ).ready(function() {

  // instantiating the main properties
  loadProperties(0);

  $('#properties').on('change', function(){
    var optionSelected = $("option:selected", this);
    //read last selected value
    var lastSelected = $(this).data('prev');
    alert(lastSelected);
    //update last selected value
    $(this).data('prev',optionSelected.data('parent'));
    alert(optionSelected.data('parent'));
  });

});