Skip to content

Instantly share code, notes, and snippets.

@gangadharjannu
Created October 9, 2014 12:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gangadharjannu/863a06298ac0f948d442 to your computer and use it in GitHub Desktop.
Save gangadharjannu/863a06298ac0f948d442 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body ng-app="myApp">
<div ng-controller="MyCtrl">
<input type="text" placeholder="Username" name="userId" ng-model="userId" ng-pattern="/^[a-zA-Z0-9]*$/" ng-maxlength="30" ng-required="true" id="userId" clear-icon/>
</div>
<script id="jsbin-javascript">
var app = angular.module("myApp", []);
app.directive('clearIcon', ['$compile',
function($compile) {
return {
restrict : 'A',
link : function(scope, elem, attrs) {
var model = attrs.ngModel;
var template = '<span ng-show="' + model + 'Clear" ng-click=\"clearText(\'' + model + '\')\">x</span>';
elem.parent().append($compile(template)(scope));
var clearIconToggle = function(toggleParam) {
var element = document.getElementById(toggleParam).value;
var inValid = /\s/;
if(!inValid.test(element)) {
if(element.trim().length)
scope[toggleParam + 'Clear'] = true;
else
scope[toggleParam + 'Clear'] = false;
} else {
scope[toggleParam + 'Clear'] = false;
}
};
var clearText = function(clearParam) {
document.getElementById(clearParam).value = '';
scope.clearIconToggle(clearParam);
};
elem.on("focus", function(event) {
clearIconToggle(model);
});
elem.on("keyup", function(event) {
clearIconToggle(model);
});
elem.on("blur", function(event) {
clearIconToggle(model);
});
elem.next().on("click", function(event){
clearText(model);
});
}
};
}]);
app.controller("MyCtrl", ["$scope",
function($scope) {
}]);
</script>
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"><\/script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body ng-app="myApp">
<div ng-controller="MyCtrl">
<input type="text" placeholder="Username" name="userId" ng-model="userId" ng-pattern="/^[a-zA-Z0-9]*$/" ng-maxlength="30" ng-required="true" id="userId" clear-icon/>
</div>
</body>
</html></script>
<script id="jsbin-source-javascript" type="text/javascript">var app = angular.module("myApp", []);
app.directive('clearIcon', ['$compile',
function($compile) {
return {
restrict : 'A',
link : function(scope, elem, attrs) {
var model = attrs.ngModel;
var template = '<span ng-show="' + model + 'Clear" ng-click=\"clearText(\'' + model + '\')\">x</span>';
elem.parent().append($compile(template)(scope));
var clearIconToggle = function(toggleParam) {
var element = document.getElementById(toggleParam).value;
var inValid = /\s/;
if(!inValid.test(element)) {
if(element.trim().length)
scope[toggleParam + 'Clear'] = true;
else
scope[toggleParam + 'Clear'] = false;
} else {
scope[toggleParam + 'Clear'] = false;
}
};
var clearText = function(clearParam) {
document.getElementById(clearParam).value = '';
scope.clearIconToggle(clearParam);
};
elem.on("focus", function(event) {
clearIconToggle(model);
});
elem.on("keyup", function(event) {
clearIconToggle(model);
});
elem.on("blur", function(event) {
clearIconToggle(model);
});
elem.next().on("click", function(event){
clearText(model);
});
}
};
}]);
app.controller("MyCtrl", ["$scope",
function($scope) {
}]);
</script></body>
</html>
var app = angular.module("myApp", []);
app.directive('clearIcon', ['$compile',
function($compile) {
return {
restrict : 'A',
link : function(scope, elem, attrs) {
var model = attrs.ngModel;
var template = '<span ng-show="' + model + 'Clear" ng-click=\"clearText(\'' + model + '\')\">x</span>';
elem.parent().append($compile(template)(scope));
var clearIconToggle = function(toggleParam) {
var element = document.getElementById(toggleParam).value;
var inValid = /\s/;
if(!inValid.test(element)) {
if(element.trim().length)
scope[toggleParam + 'Clear'] = true;
else
scope[toggleParam + 'Clear'] = false;
} else {
scope[toggleParam + 'Clear'] = false;
}
};
var clearText = function(clearParam) {
document.getElementById(clearParam).value = '';
scope.clearIconToggle(clearParam);
};
elem.on("focus", function(event) {
clearIconToggle(model);
});
elem.on("keyup", function(event) {
clearIconToggle(model);
});
elem.on("blur", function(event) {
clearIconToggle(model);
});
elem.next().on("click", function(event){
clearText(model);
});
}
};
}]);
app.controller("MyCtrl", ["$scope",
function($scope) {
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment