AngularJS Example - ng-dirty
HTML
<div ng-app="">
<div ng-controller="Ctrl">
<form name="myForm" >
userType: <input name="input" ng-model="userType">
<span class="error" ng-show="myForm.input.$error.required">Required</span><br>
<tt>userType = {{userType}}</tt><br>
<tt>input.$valid = {{myForm.$dirty}}</tt><br>
<tt>myForm.input.$error = {{myForm.input.$error}}</tt><br>
<tt>myForm.$valid = {{myForm.$valid}}</tt><br>
<tt>myForm.$error.REQUIRED = {{!!myForm.$error.REQUIRED}}</tt><br>
</form>
</div>
</div>
CSS
</style> <!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ -->
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<style>
.ng-invalid.ng-dirty { border: 1px solid red; }
JavaScript
function Ctrl($scope) {
$scope.userType = '';
$scope.$watch('myForm.$dirty',function(){
alert($scope.myForm.$dirty);
});
$scope.$watch('userType',function(){
});
}