EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: devnull on December 10, 2014, 03:18:09 AM



Title: combobox onSelect() not triggering [Solved]
Post by: devnull on December 10, 2014, 03:18:09 AM
I have a function that indexes the combobox selection forwards and backwards, it does change the values however the combobox's onSelect() event does not appear to be triggering ?

Code:
    $.extend($.fn.combobox.methods, {
      index:function(me,dir){
        function keyidx(arr,key,val){return arr.map(function(e){return e[key];}).indexOf(val)}
        var d = {};
        d.val = me.combobox('getValue');
        d.data = me.combobox('getData');
        d.idx = keyidx(d.data,'value',d.val);
        if(dir==1 && d.idx < d.data.length -1) d.idx++; else if(d.idx > 0) d.idx --;
        d.nval = d.data[d.idx++].value
        me.combobox('unselect');
        me.combobox('setValue',d.nval);
        me.combobox('select',d.nval);
        d = null;
      }
    })

What am I doing wrong ?


Title: Re: combobox onSelect() not triggering
Post by: jarry on December 10, 2014, 08:20:51 AM
Please try the code below instead.
Code:
$.extend($.fn.combobox.methods, {
  index:function(me,dir){
    function keyidx(arr,key,val){return arr.map(function(e){return String(e[key]);}).indexOf(String(val))}
    var opts = me.combobox('options');
    var d = {};
    d.val = me.combobox('getValue');
    d.data = me.combobox('getData');
    d.idx = keyidx(d.data,opts.valueField,d.val);
    console.log(d.idx)
    if(dir==1 && d.idx < d.data.length -1) d.idx++; else if(d.idx > 0) d.idx --;
    d.nval = d.data[d.idx++][opts.valueField]
    me.combobox('unselect');
    // me.combobox('setValue',d.nval);
    me.combobox('select',d.nval);
    d = null;
  }
})