如何使Ckeditor richcombo像html datalist普通搜索

时间:2018-04-17 12:08:26

标签: javascript jquery ckeditor

我正在使用CKEDITOR中的丰富组合创建自定义下拉菜单。

我想在其中添加搜索功能,例如按键搜索或输入文本框搜索。

我的Drop Box看起来像这样。

enter image description here

1 个答案:

答案 0 :(得分:0)

在这里,我没有任何默认方法,这就是为什么我这样做的原因。

editor.ui.addRichCombo( 'richcombo',{
     init : function(){
                   this.startGroup("");
                   this.add('search', '<div onmouseover="parent.comboSearch(this);" onclick="parent.nemsComboSearch(this);"><input class="cke_search" placeholder="Search"/></div>', '');

                    this.add(styles[i].name,styles[i].name,styles[i].element);
                },
});

我要在此处添加组合搜索

window.comboSearch= function(element) {
   var anchorID = $(element).closest('a').attr("id");
   var liDom = $(element).closest('li');
   liDom.empty().append('<div id="' + anchorID + '" style="padding:4px 5px;"><input class="cke_search" placeholder="Search" /></div>');
   liDom.find('input').off("keyup").on("keyup", function() { 
       var data = this.value;
       //create a jquery object of the rows
       var jo = liDom.siblings('li');
       data = data.toUpperCase();
       var len = jo.length;
       for(var i=0;i<len;i++){
           if(jo[i].textContent.toUpperCase().indexOf(data)){
               jo[i].hidden = true;
           }else{
               jo[i].hidden = false;
           }
       }
   }).focus(function() {
       this.value = "";
       $(this).unbind('focus');
   });
};

function filter(data, jo) {
   if (this.value === "") {
       jo.show();
       return;
   }
   //hide all the rows
   jo.hide();

   //Recusively filter the jquery object to get results.
   jo.filter(function(i, v) {
       var $t = $(this);
       if ($t.is(":icontains('" + data + "')")) {
           return true;
       }
       return false;
   }).show();
}

一切正常。