Guest User

Untitled

a guest
Feb 28th, 2018
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.34 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <link rel="stylesheet" href="https://select2.github.io/select2-bootstrap-theme/css/bootstrap.min.css" />
  5. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />
  6. <link rel="stylesheet" href="https://select2.github.io/select2-bootstrap-theme/css/select2-bootstrap.css" />
  7. <link rel="stylesheet" href="https://select2.github.io/select2-bootstrap-theme/css/gh-pages.css" />
  8.  
  9. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  10. <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.js"></script>
  11. <script src="https://select2.github.io/select2-bootstrap-theme/js/bootstrap.min.js"></script>
  12. <script src="https://select2.github.io/select2-bootstrap-theme/js/anchor.min.js"></script>
  13.  
  14. <script>
  15. anchors.options.placement = 'left';
  16. anchors.add('.container h1, .container h2, .container h3, .container h4, .container h5');
  17.  
  18. // Set the "bootstrap" theme as the default theme for all Select2
  19. // widgets.
  20. //
  21. // @see https://github.com/select2/select2/issues/2927
  22. $.fn.select2.defaults.set( "theme", "bootstrap" );
  23.  
  24. var placeholder = "Select a State";
  25.  
  26. $( ".select2-single, .select2-multiple" ).select2( {
  27. placeholder: placeholder,
  28. width: null,
  29. containerCssClass: ':all:'
  30. } );
  31.  
  32. $( ".select2-allow-clear" ).select2( {
  33. allowClear: true,
  34. placeholder: placeholder,
  35. width: null,
  36. containerCssClass: ':all:'
  37. } );
  38.  
  39. // @see https://select2.github.io/examples.html#data-ajax
  40. function formatRepo( repo ) {
  41. if (repo.loading) return repo.text;
  42.  
  43. var markup = "<div class='select2-result-repository clearfix'>" +
  44. "<div class='select2-result-repository__avatar'><img src='" + repo.owner.avatar_url + "' /></div>" +
  45. "<div class='select2-result-repository__meta'>" +
  46. "<div class='select2-result-repository__title'>" + repo.full_name + "</div>";
  47.  
  48. if ( repo.description ) {
  49. markup += "<div class='select2-result-repository__description'>" + repo.description + "</div>";
  50. }
  51.  
  52. markup += "<div class='select2-result-repository__statistics'>" +
  53. "<div class='select2-result-repository__forks'><span class='glyphicon glyphicon-flash'></span> " + repo.forks_count + " Forks</div>" +
  54. "<div class='select2-result-repository__stargazers'><span class='glyphicon glyphicon-star'></span> " + repo.stargazers_count + " Stars</div>" +
  55. "<div class='select2-result-repository__watchers'><span class='glyphicon glyphicon-eye-open'></span> " + repo.watchers_count + " Watchers</div>" +
  56. "</div>" +
  57. "</div></div>";
  58.  
  59. return markup;
  60. }
  61.  
  62. function formatRepoSelection( repo ) {
  63. return repo.full_name || repo.text;
  64. }
  65.  
  66. $( ".js-data-example-ajax" ).select2({
  67. width : null,
  68. containerCssClass: ':all:',
  69. ajax: {
  70. url: "https://api.github.com/search/repositories",
  71. dataType: 'json',
  72. delay: 250,
  73. data: function (params) {
  74. return {
  75. q: params.term, // search term
  76. page: params.page
  77. };
  78. },
  79. processResults: function (data, params) {
  80. // parse the results into the format expected by Select2
  81. // since we are using custom formatting functions we do not need to
  82. // alter the remote JSON data, except to indicate that infinite
  83. // scrolling can be used
  84. params.page = params.page || 1;
  85.  
  86. return {
  87. results: data.items,
  88. pagination: {
  89. more: (params.page * 30) < data.total_count
  90. }
  91. };
  92. },
  93. cache: true
  94. },
  95. escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
  96. minimumInputLength: 1,
  97. templateResult: formatRepo,
  98. templateSelection: formatRepoSelection
  99. });
  100.  
  101. $( "button[data-select2-open]" ).click( function() {
  102. $( "#" + $( this ).data( "select2-open" ) ).select2( "open" );
  103. });
  104.  
  105. $( ":checkbox" ).on( "click", function() {
  106. $( this ).parent().nextAll( "select" ).prop( "disabled", !this.checked );
  107. });
  108.  
  109. // copy Bootstrap validation states to Select2 dropdown
  110. //
  111. // add .has-waring, .has-error, .has-succes to the Select2 dropdown
  112. // (was #select2-drop in Select2 v3.x, in Select2 v4 can be selected via
  113. // body > .select2-container) if _any_ of the opened Select2's parents
  114. // has one of these forementioned classes (YUCK! ;-))
  115. $( ".select2-single, .select2-multiple, .select2-allow-clear, .js-data-example-ajax" ).on( "select2:open", function() {
  116. if ( $( this ).parents( "[class*='has-']" ).length ) {
  117. var classNames = $( this ).parents( "[class*='has-']" )[ 0 ].className.split( /\s+/ );
  118.  
  119. for ( var i = 0; i < classNames.length; ++i ) {
  120. if ( classNames[ i ].match( "has-" ) ) {
  121. $( "body > .select2-container" ).addClass( classNames[ i ] );
  122. }
  123. }
  124. }
  125. });
  126. </script>
  127. </head>
  128. <body>
  129. <div class="form-group">
  130. <label for="multi-append" class="control-label">Select2 multi append</label>
  131. <div class="input-group">
  132. <select id="multi-append" class="form-control select2-multiple" multiple>
  133. <option></option>
  134. <option value="A">A</option>
  135. <option value="B">B</option>
  136. <option value="C">C</option>
  137. </select>
  138. <span class="input-group-btn">
  139. <button class="btn btn-default" type="button" data-select2-open="multi-append">
  140. <span class="glyphicon glyphicon-search"></span>
  141. </button>
  142. </span>
  143. </div>
  144. </div>
  145.  
  146. <div class="form-group">
  147. <label for="multiple" class="control-label">Select2 multi select</label>
  148. <select id="multiple" class="form-control select2-multiple" multiple>
  149. <optgroup label="Alaskan/Hawaiian Time Zone">
  150. <option value="AK">Alaska</option>
  151. <option value="HI" disabled="disabled">Hawaii</option>
  152. </optgroup>
  153. <optgroup label="Pacific Time Zone">
  154. <option value="CA">California</option>
  155. <option value="NV">Nevada</option>
  156. <option value="OR">Oregon</option>
  157. <option value="WA">Washington</option>
  158. </optgroup>
  159. <optgroup label="Mountain Time Zone">
  160. <option value="AZ">Arizona</option>
  161. <option value="CO">Colorado</option>
  162. <option value="ID">Idaho</option>
  163. <option value="MT">Montana</option><option value="NE">Nebraska</option>
  164. <option value="NM">New Mexico</option>
  165. <option value="ND">North Dakota</option>
  166. <option value="UT">Utah</option>
  167. <option value="WY">Wyoming</option>
  168. </optgroup>
  169. <optgroup label="Central Time Zone">
  170. <option value="AL">Alabama</option>
  171. <option value="AR">Arkansas</option>
  172. <option value="IL">Illinois</option>
  173. <option value="IA">Iowa</option>
  174. <option value="KS">Kansas</option>
  175. <option value="KY">Kentucky</option>
  176. <option value="LA">Louisiana</option>
  177. <option value="MN">Minnesota</option>
  178. <option value="MS">Mississippi</option>
  179. <option value="MO">Missouri</option>
  180. <option value="OK">Oklahoma</option>
  181. <option value="SD">South Dakota</option>
  182. <option value="TX">Texas</option>
  183. <option value="TN">Tennessee</option>
  184. <option value="WI">Wisconsin</option>
  185. </optgroup>
  186. <optgroup label="Eastern Time Zone">
  187. <option value="CT">Connecticut</option>
  188. <option value="DE">Delaware</option>
  189. <option value="FL">Florida</option>
  190. <option value="GA">Georgia</option>
  191. <option value="IN">Indiana</option>
  192. <option value="ME">Maine</option>
  193. <option value="MD">Maryland</option>
  194. <option value="MA">Massachusetts</option>
  195. <option value="MI">Michigan</option>
  196. <option value="NH">New Hampshire</option><option value="NJ">New Jersey</option>
  197. <option value="NY">New York</option>
  198. <option value="NC">North Carolina</option>
  199. <option value="OH">Ohio</option>
  200. <option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option>
  201. <option value="VT">Vermont</option><option value="VA">Virginia</option>
  202. <option value="WV">West Virginia</option>
  203. </optgroup>
  204. <option value="TNOGZ" disabled="disabled">The No Optgroup Zone</option>
  205. <option value="TPZ">The Panic Zone</option>
  206. <option value="TTZ">The Twilight Zone</option>
  207.  
  208. </select>
  209. </div>
  210.  
  211. </body>
Advertisement
Add Comment
Please, Sign In to add comment