Как Вы печатаете в операторе выбора в SML?

Скрытие optgroups и options, вероятно, не лучший путь, даже если заключить в span. Обтекание в <span style="disaply:none"> не работает, когда я тестировал его в Safari Mobile.

Ваш лучший вариант - убрать ненужные предметы из выпадающего списка. При этом вы захотите создать клон исходного выпадающего списка, чтобы была запись начального состояния.

$(document).ready(function() {
  //Add a hidden clone
  var clone = $("#fancy").clone(true);
  clone.attr("id", "fancy_clone");
  clone.css("display", "none");
  $("body").append(clone);

  $('.search').on('keyup', function() {
    searchFilter($(this).val());
  });

  function searchFilter(value) {
    //Need a working clone - keep our clone as the original record
    var workingClone = $("#fancy_clone").clone(true);
    $("#fancy").empty();

    //Remove unwanted options
    $(workingClone).find("option").each(function() {
      if ($(this).val().toLowerCase().indexOf(value.toLowerCase()) === -1) {
        var thisParent = $(this).parents("optgroup");
        $(this).remove();

        //remove optgroup if it is empty
        if ($(thisParent).children("option").length === 0) {
          $(thisParent).remove();
        }
      }
    });

    //UPdate the actual select
    $("#fancy").append($(workingClone).html());
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<input type="text" class="search" />
<select id="fancy">
  <optgroup label="test01">
    <option value="car">car</option>
    <option value="bike">bike</option>
    <option value="cycle">cycle</option>
  </optgroup>
  <optgroup label="test02">
    <option value="orange">orange</option>
    <option value="apple">apple</option>
    <option value="pinapple">pineapple</option>
  </optgroup>
</select>

11
задан Kai 12 April 2009 в 20:28
поделиться

1 ответ

Вы можете «выполнить последовательность операторов, только последний из которых должен рассматриваться как возвращаемое значение», используя точка с запятой.

...
constant_int _ => ( print "returning integer"; (integer,theta) )
...

В этом случае нам нужно было обернуть последовательность операторов в скобки, потому что точка с запятой имеет меньший приоритет, чем выражение-регистр, и поэтому, если бы у нас не было скобок, было бы думать, что регистр выражение заканчивается точкой с запятой, и что все case-выражение является частью последовательности, что в данном случае не то, что вам нужно.

21
ответ дан 3 December 2019 в 05:36
поделиться