Advertisement
Guest User

Untitled

a guest
Sep 27th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. .directive('clearText', function () {
  2. return {
  3. restrict: "A",
  4. require: 'ngModel',
  5. link: function (scope, element, attrs, ctrl) {
  6. ctrl.$render = function () {
  7. element.val(ctrl.$viewValue);
  8. };
  9.  
  10. element.bind('input', function (event) {
  11. ctrl.$setViewValue(element.val());
  12. tog(!ctrl.$isEmpty(ctrl.$viewValue), 'x');
  13. });
  14.  
  15. element.bind('click', function (event) {
  16. if ((event.target.offsetWidth - 24) < (event.clientX - event.target.getBoundingClientRect().left)
  17. && !ctrl.$isEmpty(ctrl.$viewValue)) {
  18. reset();
  19. }
  20. });
  21.  
  22. element.bind('mousemove', function (event) {
  23. tog((event.target.offsetWidth - 24) < (event.clientX - event.target.getBoundingClientRect().left)
  24. && !ctrl.$isEmpty(ctrl.$viewValue), 'onX');
  25. });
  26.  
  27. function tog(cond, cls) {
  28. cond ? angular.element(element).addClass(cls) : angular.element(element).removeClass(cls);
  29. }
  30.  
  31. function reset() {
  32. element.removeClass('x');
  33. ctrl.$setViewValue(null);
  34. ctrl.$render();
  35. }
  36. }
  37. };
  38. });
  39.  
  40. <!DOCTYPE html>
  41. <html>
  42.  
  43. <head>
  44. <link href="https://netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
  45. <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.4/angular-material.min.css">
  46. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
  47. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-messages.js"></script>
  48. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script>
  49. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script>
  50.  
  51.  
  52. <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.4/angular-material.min.js"></script>
  53.  
  54. <script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script>
  55. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  56.  
  57.  
  58.  
  59. <style>
  60.  
  61. .registration-form .form-control{
  62.  
  63. border-radius:2px;
  64.  
  65. }
  66.  
  67.  
  68.  
  69. .registration-form .has-error .form-control, .registration-form .has-error .form-control:hover, .registration-form .has-error .form-control:active{
  70.  
  71. border-color: red;
  72. box-shadow: none !important;
  73.  
  74. }
  75.  
  76. .has-error input[type="text"]:focus,
  77. .has-error input[type="password"]:focus,
  78. .has-error input[type="number"]:focus{
  79. background-color: red !important;
  80. }
  81. .registration-form label{
  82. font-weight: normal;
  83. }
  84.  
  85. .registration-form .form-group input[type="text"]:focus,
  86. .registration-form .form-group input[type="password"]:focus,
  87. .registration-form .form-group input[type="number"]:focus{
  88.  
  89. outline: none;
  90. box-shadow:none !important;
  91. background-color:#18b6d6;
  92.  
  93.  
  94. }
  95.  
  96.  
  97. .error_message_text{
  98. color:red;
  99. }
  100.  
  101. .clearable.x {
  102. background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/klEQVRIS+1UwQ2DMAy0RQboJmWDphL8203aSdpN2j9ITTegm3QAo6AgkKIo2ObBD57BvrMvl0PY+MON8WEnEBXOSlTXdem9fxDR1Tn351CstQdjzAsR703TdGltlqCqKgcAJwDoiOi8RDKBfwCgBIBv27ZWRRAai6JwiHhcIonBvfe/vu9tbpBFF3EkWvCwDWvTHEloMsaMsnCTz1KJ7yAlmRpV4OIG8xQJCWgmV28QChO3hCPWXbGTVBLFmo9rM+5S2TSWJr3Q8E+ysGoDzoqad8LegcbnWhI2KiS3JCT6qJjC7klEF2XYvRHxpg47MYNXFIg2XYGVLd0JRAUHPcjkGaE71EgAAAAASUVORK5CYII=) no-repeat right -10px center;
  103. background-size: 16px 16px;
  104. background-position: right 5px center;
  105. }
  106. .clearable.onX{ cursor: pointer; }
  107.  
  108. </style>
  109. </head>
  110. <script>
  111. var app = angular.module('clearTextApp', ['ngMessages']).controller('clearTextAppCtrl', ['$scope', function ($scope) {
  112. //ng-model
  113. }])
  114. .directive('clearText', function () {
  115. return {
  116. restrict: "A",
  117. require: 'ngModel',
  118. link: function (scope, element, attrs, ctrl) {
  119. ctrl.$render = function () {
  120. element.val(ctrl.$viewValue);
  121. };
  122.  
  123. element.bind('input', function (event) {
  124. ctrl.$setViewValue(element.val());
  125. tog(!ctrl.$isEmpty(ctrl.$viewValue), 'x');
  126. });
  127.  
  128. element.bind('click', function (event) {
  129. if ((event.target.offsetWidth - 24) < (event.clientX - event.target.getBoundingClientRect().left)
  130. && !ctrl.$isEmpty(ctrl.$viewValue)) {
  131. reset();
  132. }
  133. });
  134.  
  135. element.bind('mousemove', function (event) {
  136. tog((event.target.offsetWidth - 24) < (event.clientX - event.target.getBoundingClientRect().left)
  137. && !ctrl.$isEmpty(ctrl.$viewValue), 'onX');
  138. });
  139.  
  140. function tog(cond, cls) {
  141. cond ? angular.element(element).addClass(cls) : angular.element(element).removeClass(cls);
  142. }
  143.  
  144. function reset() {
  145. element.removeClass('x');
  146. ctrl.$setViewValue(null);
  147. ctrl.$render();
  148. }
  149. }
  150. };
  151. });
  152.  
  153. </script>
  154. <body ng-app='clearTextApp' ng-controller='clearTextAppCtrl'>
  155. <h2>Search</h2>
  156. <form role="form" class="form" name="advisorCompanyForm" novalidate>
  157.  
  158. <div class="form-group" data-ng-class="{'has-error' : advisorCompanyForm.$invalid && advisorCompanyForm.searchCompanyName.$touched }">
  159. <label for="SearchCompanyName" data-ng-hide="advisorCompanyForm.searchCompanyName.$invalid && advisorCompanyForm.searchCompanyName.$touched">Company Name</label>
  160. <span data-ng-show="advisorCompanyForm.searchCompanyName.$invalid && advisorCompanyForm.searchCompanyName.$touched" data-ng-messages="advisorCompanyForm.searchCompanyName.$error">
  161. <label class="error_message_text" data-ng-message="required">Required</label>
  162. <label class="error_message_text" data-ng-message="minlength">Company name should be minimum of 3 characters</label>
  163. <label class="error_message_text" data-ng-message="pattern">Special characters are not allowed</label>
  164. </span>
  165. <input clear-text type="text" id="SearchCompanyName" name="searchCompanyName" class=" clearable form-control" data-ng-minlength="3" data-ng-pattern="/^[a-zA-Z0-9]*$/" data-ng-model="searchCompanyName" placeholder="Company Name" required />
  166. <!--<span ng-show="( advisorCompanyForm.searchCompanyName.$touched && advisorCompanyForm.searchCompanyName.$error.minlength)" >Minlength</span>
  167. <span ng-show="( advisorCompanyForm.searchCompanyName.$touched && advisorCompanyForm.searchCompanyName.$error.pattern)" >Pattern</span>
  168. <span ng-show="( advisorCompanyForm.searchCompanyName.$touched && advisorCompanyForm.searchCompanyName.$error.required )" >Required</span> -->
  169. </div>
  170. <form>
  171. <div></div>
  172. </body>
  173. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement