X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FComboBoxArray.js;h=89b9097d6199a5a5c7775e121a0108ecd377d3f6;hb=7ac4ea4edaca85ef068da9a0c3d33510626fe264;hp=8ad46f99e710b62a1ad6503e9e04be95dcba0b03;hpb=1a02b874b795ee74fd96ccf8576fa3a8f4a90991;p=roojs1 diff --git a/Roo/form/ComboBoxArray.js b/Roo/form/ComboBoxArray.js index 8ad46f99e7..89b9097d61 100644 --- a/Roo/form/ComboBoxArray.js +++ b/Roo/form/ComboBoxArray.js @@ -335,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(',')); + } }); @@ -416,19 +452,5 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { this.el.child('img').un('click', this.remove, this); this.el.remove(); this.cb.updateHiddenEl(); - }, - - /** - * 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; } - - }); \ No newline at end of file