代码之家  ›  专栏  ›  技术社区  ›  Chris

更改边框颜色时,KendoUI下拉列表会丢失数据

  •  0
  • Chris  · 技术社区  · 8 年前

    我在单击按钮更改剑道下拉列表的输入边框颜色时遇到了一个问题。当我点击按钮时,输入边框会变为红色,但下拉列表中的所有数据都会丢失。

    你知道为什么我点击按钮时会丢失下拉列表的数据吗?

    $(document).ready(function() {
    
      $('#btn').on('click', function() {
        var dd = $('#myColor').kendoDropDownList().data("kendoDropDownList");
        dd.wrapper.find(".k-input").css("border", "2px solid red");
    
      });
    
      var data = [{
          text: "Select ",
          value: "0"
        },
        {
          text: "Black",
          value: "1"
        },
        {
          text: "Orange",
          value: "2"
        },
        {
          text: "Grey",
          value: "3"
        }
      ];
    
      // create DropDownList from input HTML element
      $("#myColor").kendoDropDownList({
        dataTextField: "text",
        dataValueField: "value",
        dataSource: data
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2018.1.221/js/kendo.all.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <link href="https://kendo.cdn.telerik.com/2018.1.221/styles/kendo.common.min.css" rel="stylesheet" />
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
    
    
    <div class="form-group">
      <label for="myColor" class="control-label col-lg-2 col-sm-4">Color</label>
      <div class="col-lg-10 col-sm-8">
        <input id="myColor" class="form-control" placeholder="Color" name="myColor" style="max-width:75%;" />
      </div>
    </div>
    
    <div class="form-group">
      <button id='btn' class='btn btn-success'> Click </button>
    </div>
    1 回复  |  直到 8 年前
        1
  •  2
  •   David Shorthose    8 年前

    这是一个需要解决的简单问题。

    当您在按钮中调用dropdownlist时,单击您正在重置控件,以便它不具有重置之前应用于它的数据源等。只需将呼叫线路更改为:

     var dd = $('#myColor').data("kendoDropDownList");
    

    由此:

    var dd = $('#myColor').kendoDropDownList().data("kendoDropDownList");
    

    我为您提供了一个dojo,让您看到它的工作情况。 http://dojo.telerik.com/usehOGiS