1

私は Kendo UI Multiselect を使用しています: http ://demos.kendoui.c​​om/web/multiselect/events.html

私はこのデータを持っています:

var data =
    [
        { text: "Shirt-Black", value: "1" },
        { text: "Shirt-Brown", value: "2" },
        { text: "Shirt-Blue", value: "3" },
        { text: "Cap-Green", value: "4" },
        { text: "Cap-Red", value: "5" },
        { text: "Cap-White", value: "6" },
        { text: "Jacket-Denim", value: "7" }
    ];

ここで、「Shirt-Brown」を選択した場合、シャツの残りのエントリ、つまり「Shirt-Black」と「Shirt-Blue」がリストに表示されないようにしたいと考えています。これは、ユーザーが 2 つのシャツを選択できないことを意味します。色。

同様に、任意の色の「キャップ」が選択されている場合、ユーザーは他の色の「キャップ」を選択できないようにする必要があります。

これを達成する方法はありますか?

4

1 に答える 1

0

これは組み込み機能ではありません。選択したアイテムもリストから削除されるため、 dataSource filter() メソッドを使用することさえできません。

ただし、このコードはあなたが求めていることを行います:

$("#select").kendoMultiSelect({
    ...
    change: function(e) {
      var dataItems = e.sender.dataItems();
      var categories = [];

      for(var i = 0; i < dataItems.length; i++){
        var category = dataItems[i].text.substring(0, dataItems[i].text.indexOf('-'));
        categories.push(category);
      }

      e.sender.ul.find('li').each(function(index, value){
        var $li = $(value);
        var hidden = false;
        for(var i = 0; i < categories.length; i++){
          var category = categories[i];
          if ($li.text().match("^" + category)){
            $li.css('display', 'none');
            hidden = true;
          }
        }
        if(!hidden){
          $li.css('display', 'list-item');
        }
      });
    }
});

現役剣道道場: http ://dojo.telerik.com/AGisi

于 2014-12-21T21:02:41.447 に答える