Angular: Empty Fiddle
http://angularjs.org/
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.js"></script>
<form ng-app='myApp' ng-controller="MyCtrl" name='myForm'>
<select ng-model='model.property' name='mySelect' data-val-required="required">
<option value=''>Fill me out, yo!</option>
<option value='1'>One</option>
<option value='2'>Two</option>
<option value='3'>Three</option>
</select> <span ng-show='myForm.mySelect.$valid'>Great Scott! This select appears to be valid!</span>
</form>
JavaScript
var myApp = angular.module('myApp', []).directive('valRequired', function () {
return {
require: 'ngModel',
restrict: 'A',
link: function (scope, elm, attr, ctrl) {
if (!ctrl || !attr.valRequired) return;
attr.required = true; // force truthy in case we are on non input element
var validator = function (value) {
if (attr.required && (value == '' || value === false)) {
ctrl.$setValidity('required', false);
return;
} else {
ctrl.$setValidity('required', true);
return value;
}
};
ctrl.$formatters.push(validator);
ctrl.$parsers.unshift(validator);
attr.$observe('required', function () {
validator(ctrl.$viewValue);
});
}
};
});
function MyCtrl($scope, $http) {
$scope.model = {
property: ''
};
}