0

我想知道是否有一种方法可以仅使用占位符而不是第一个值来初始化下拉列表?

html

    <select class="select2" data-bind="options: $root.AvailableFrom,
                                                   value: SelectedFrom,
                                                   optionsValue: function(i) {return i.ID},
                                                   optionsText: function(i) {return i.Name},
                                                   select2: {placeholder: 'Please select a Person...', 
                                                  allowClear: false}"></select> </td>

JS


  ko.bindingHandlers.select2 = {
    init: function (element, valueAccessor, allBindingsAccessor, bindingContext) {
      ko.utils.domNodeDisposal.addDisposeCallback(element,
        function() {
          $(element).select2('destroy');
        });
      var select2 = ko.utils.unwrapObservable(allBindingsAccessor().select2);
      $(element).select2(select2);
    },
    update: function (element, valueAccessor, allBindingsAccessor, bindingContext) {
      var allBindings = allBindingsAccessor();
      if ("value" in allBindings) {
        if ((allBindings.select2.multiple || element.multiple) && allBindings.value().constructor != Array) {
          $(element).val(allBindings.value().split(',')).trigger('change');
        } else {
          $(element).on('select2:selecting', function (e) {
           // $(this).select2(allBindingsAccessor().options);
              var data = e.params.args.data.id;
              console.log("Selected ID = " + data);
          });
          console.log($(element).select2('data'));
          $(element).val(allBindings.value()).trigger('change');
        }
      }    
      $(element).trigger("change");
    }
  };

我已经读过,如果我把<option></option>它默认为占位符,但由于我使用的是 a<select>我不太确定我将如何实现它。谢谢!

4

0 回答 0