X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FComboBoxArray.js;h=5e83b79c25f70eaa2ab422e633303d1a9bd657c6;hb=b1c54ac13f89058b1238d34fdbc04d7c1885a2c7;hp=89b9097d6199a5a5c7775e121a0108ecd377d3f6;hpb=7ac4ea4edaca85ef068da9a0c3d33510626fe264;p=roojs1 diff --git a/Roo/form/ComboBoxArray.js b/Roo/form/ComboBoxArray.js index 89b9097d61..5e83b79c25 100644 --- a/Roo/form/ComboBoxArray.js +++ b/Roo/form/ComboBoxArray.js @@ -36,6 +36,24 @@ Roo.form.ComboBoxArray = function(config) { + this.addEvents({ + /** + * @event beforeremove + * Fires before remove the value from the list + * @param {Roo.form.ComboBoxArray} _self This combo box array + * @param {Roo.form.ComboBoxArray.Item} item removed item + */ + 'beforeremove' : true, + /** + * @event remove + * Fires when remove the value from the list + * @param {Roo.form.ComboBoxArray} _self This combo box array + * @param {Roo.form.ComboBoxArray.Item} item removed item + */ + 'remove' : true + + + }); Roo.form.ComboBoxArray.superclass.constructor.call(this, config); @@ -258,9 +276,8 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, reset : function() { //Roo.form.ComboBoxArray.superclass.reset.call(this); - this.items.each(function(f) { - f.remove(); - }); + this.items.clear(); + this.el.dom.value = ''; if (this.hiddenEl) { this.hiddenEl.dom.value = ''; @@ -297,7 +314,7 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, }, this) } - if (typeof(v) == 'object') { + if (typeof(v) == 'object' ) { // then let's assume it's an array of objects.. Roo.each(v, function(l) { this.addItem(l); @@ -447,10 +464,18 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { remove : function() { + if(this.cb.disabled){ + return; + } + + if(false !== this.cb.fireEvent('beforeremove', this.cb, this)){ + this.cb.items.remove(this); + this.el.child('img').un('click', this.remove, this); + this.el.remove(); + this.cb.updateHiddenEl(); + + this.cb.fireEvent('remove', this.cb, this); + } - this.cb.items.remove(this); - this.el.child('img').un('click', this.remove, this); - this.el.remove(); - this.cb.updateHiddenEl(); } }); \ No newline at end of file