a snippet from angular directive, should integrate in smartform structure and html5 min/max attributes
angular.module('app')
.directive('validateRange', function () {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
var vrAttrs = attrs.validateRange.split(','),
a, b, container;
// validate params
if (vrAttrs.length < 2) {
throw new Error('Validate Range requires at least 2 numbers ' + attrs.validateRange)
}
a = parseFloat(vrAttrs[0]);
b = parseFloat(vrAttrs[1]);
container = vrAttrs.length == 3 ? vrAttrs[2] : undefined;
if (container) {
container = $(element).closest(container);
} else {
container = $(element).parent();
}
$(element).on('focusin focusout keyup', function(e){
var value = parseFloat($(element).val());
switch(e.type) {
case 'focusin' :
case 'keyup' :
container.addClass('focus');
if (value >= a && value <=b) {
container.removeClass('invalid-range').addClass('valid-range');
}
break;
case 'focusout' :
if (value >= a && value <=b) {
container.removeClass('invalid-range').addClass('valid-range');
} else {
container.removeClass('valid-range').addClass('invalid-range');
}
container.removeClass('focus').addClass('visited');
}
})
}
};
});
a snippet from angular directive, should integrate in smartform structure and html5 min/max attributes
angular.module('app')
.directive('validateRange', function () {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
});