Hello,

I just built ext from the SVN and was testing the monitoring and isDirty.

I wanted to accomplish a 'Save' button when the data in a form isValid && isDirty.
So I tuned on monitoring of the form and check for the event like this.

HTML Code:
form[tmpdlgid].on('clientvalidation', function(){
	if(form[tmpdlgid].isDirty() && form[tmpdlgid].isValid()){
                     console.debug (form[tmpdlgid].isDirty());
                     submitbutton[tmpdlgid].enable();
	}
});
This works perfectly with an empty form. I have to make some change and also have valid data in the fields. After that my button is enabled.

However, when on the same form, using form load...
HTML Code:
console.debug('got an ID, loading...');
form[dlgid].stopMonitoring();
form[dlgid].load({
	url : 'jsonform.php',
	waitMsg : 'loading data...',
	params : {'id'  : id}
 	});
form[dlgid].startMonitoring();
...isDirty is always true. Note that I also tried stopMonitoring before load and startMonitoring after.


Looks like a bug?

[EDIT]
Either this is by design or a bug..

I put:
HTML Code:
console.debug('isDirty -> new value: '+String(this.getValue())+' / old value: '+String(this.originalValue));
into ext at the isDirty function.

This is what I got in Firebug:

isDirty -> new value: jim / old value:

Means that the isDirty function is checking this.originalvalue which is empty while it should have the loaded data which in this case is 'jim'. Is this by design? Shoudn't dirty mean any change since the original loaded data?