X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FComboBoxArray.js;h=89b9097d6199a5a5c7775e121a0108ecd377d3f6;hb=7ac4ea4edaca85ef068da9a0c3d33510626fe264;hp=2894623f6b6f54f02c01bbdf1701e73dd9a12ccc;hpb=55406c28f2ed5bec56435eefd624d2404d983d40;p=roojs1 diff --git a/Roo/form/ComboBoxArray.js b/Roo/form/ComboBoxArray.js index 2894623f6b..89b9097d61 100644 --- a/Roo/form/ComboBoxArray.js +++ b/Roo/form/ComboBoxArray.js @@ -101,6 +101,10 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, this.combo = Roo.factory(this.combo, Roo.form); this.combo.onRender(ct, position); + if (typeof(this.combo.width) != 'undefined') { + this.combo.onResize(this.combo.width,0); + } + this.combo.initEvents(); // assigned so form know we need to do this.. @@ -285,7 +289,7 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, if (!li.length) { return; } - add = {}; + var add = {}; add[this.valueField] = k; add[this.displayField] = li.item(0).data[this.displayField]; @@ -331,10 +335,46 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, }, + /** + * Validates the combox array value + * @return {Boolean} True if the value is valid, else false + */ + validate : function(){ + if(this.disabled || this.validateValue(this.processValue(this.getValue()))){ + this.clearInvalid(); + return true; + } + return false; + }, validateValue : function(value){ return Roo.form.ComboBoxArray.superclass.validateValue.call(this, this.getValue()); + }, + + /*@ + * overide + * + */ + isDirty : function() { + if(this.disabled) { + return false; + } + + try { + var d = Roo.decode(String(this.originalValue)); + } catch (e) { + return String(this.getValue()) !== String(this.originalValue); + } + + var originalValue = []; + + for (var i = 0; i < d.length; i++){ + originalValue.push(d[i][this.valueField]); + } + + return String(this.getValue()) !== String(originalValue.join(',')); + } }); @@ -366,7 +406,7 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { defaultAutoCreate : { tag: 'div', - cls: 'x-cbarray-item-t', + cls: 'x-cbarray-item', cn : [ { tag: 'div' }, { @@ -413,6 +453,4 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { this.el.remove(); this.cb.updateHiddenEl(); } - - }); \ No newline at end of file