ExtJs dependent field validation
By adding your own custom validator and therein perform your validation.
var field_one = new Ext.form.TextField({
name: 'field_one',
fieldLabel: 'Field one'
});
var field_two = new Ext.form.TextField({
name: 'field_two',
fieldLabel: 'Field two',
validator: function(value){
if(field_one.getValue() != value) {
return 'Error! Value not identical to field one';
} else {
return true;
}
}
});
field definition:
....
monitorValid: true,
....
}, {
xtype: 'textfield',
name: 'name1',
ref: 'name1',
}, {
xtype: 'textfield',
name: 'name2',
ref: 'name2',
allowBlank: false,
....
next in initComponent (or listener if you preffer):
this.name2.on ( 'change', this._validate_name2, this );
and define handler in FormPanel:
this._validate_name2: function ( ) {
if ( this.name1.getValue () == this.name2.getValue () ) {
this.name2.markInvalid ( 'field does not match name1' );
this.name2.setValue ( null );
}
}
"markInvalid () method does not cause the Field's validate method to return false if the value does pass validation. So simply marking a Field as invalid will not prevent submission of forms submitted with the Ext.form.Action.Submit.clientValidation option set."
For this reason combination allowBlank and setValue ( null ) will break validation