X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FComboBoxArray.js;h=6bbec5593f3eb91f580a382552ba28461e6cf681;hb=08a9660f7c3401485f38e7913d88ba483685b4ee;hp=b0a8fd7e4f8f9d328495182a50154e301876715e;hpb=ddba099d271a4a2896102530daac6e7aafb1eeae;p=roojs1 diff --git a/Roo/form/ComboBoxArray.js b/Roo/form/ComboBoxArray.js index b0a8fd7e4f..6bbec5593f 100644 --- a/Roo/form/ComboBoxArray.js +++ b/Roo/form/ComboBoxArray.js @@ -101,6 +101,11 @@ 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.. this.store = this.combo.store; @@ -284,15 +289,20 @@ 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]; this.addItem(add); }, this) - - - + + } + if (typeof(v) == 'object') { + // then let's assume it's an array of objects.. + Roo.each(v, function(l) { + this.addItem(l); + }, this); + } @@ -306,8 +316,14 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, if (typeof(v[this.valueField]) != 'string' || !v[this.valueField].length) { return; } - var keys = v[this.valueField].split(','); - var display = v[this.displayField].split(','); + var kv = v[this.valueField]; + var dv = v[this.displayField]; + kv = typeof(kv) != 'string' ? '' : kv; + dv = typeof(dv) != 'string' ? '' : dv; + + + var keys = kv.split(','); + var display = dv.split(','); for (var i = 0 ; i < keys.length; i++) { add = {}; @@ -319,6 +335,17 @@ 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()); @@ -401,6 +428,4 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { this.el.remove(); this.cb.updateHiddenEl(); } - - }); \ No newline at end of file