bootstrap4.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Bootstrap-select Tests (Bootstrap 4)</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  7. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
  8. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
  9. <link rel="stylesheet" href="../dist/css/bootstrap-select.css">
  10. <style>
  11. body {
  12. padding-top: 70px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <nav class="navbar navbar-light bg-light fixed-top" role="navigation">
  18. <div class="container">
  19. <div class="navbar-header">
  20. <a class="navbar-brand" href="#">Bootstrap-select usability tests</a>
  21. </div>
  22. </div>
  23. </nav>
  24. <div class="container">
  25. <form role="form">
  26. <div class="form-group row">
  27. <label for="basic" class="col-lg-2 control-label">Large Select (liveSearch enabled, container: 'body')</label>
  28. <div class="col-lg-5">
  29. <label>Standard</label>
  30. <select class="selectpicker form-control" id="number" data-container="body" data-live-search="true" title="Select a number" data-hide-disabled="true"></select>
  31. </div>
  32. <div class="col-lg-5">
  33. <label>Multiple (no virtualScroll)</label>
  34. <select multiple class="selectpicker form-control" id="number-multiple" data-container="body" data-live-search="true" title="Select a number" data-hide-disabled="true" data-actions-box="true" data-virtual-scroll="false"></select>
  35. </div>
  36. </div>
  37. </form>
  38. <form role="form">
  39. <div class="form-group row">
  40. <label for="basic" class="col-lg-2 control-label">Large Select (liveSearch disabled)</label>
  41. <div class="col-lg-5">
  42. <label>Standard</label>
  43. <select class="selectpicker form-control" id="number2" title="Select a number" data-hide-disabled="true"></select>
  44. </div>
  45. <div class="col-lg-5">
  46. <label>Multiple</label>
  47. <select class="selectpicker form-control" id="number2-multiple" title="Select a number" data-hide-disabled="true" multiple data-actions-box="true"></select>
  48. </div>
  49. </div>
  50. </form>
  51. <hr>
  52. <form role="form">
  53. <div class="form-group row">
  54. <label for="basic" class="col-lg-2 control-label">"Basic" (liveSearch disabled)</label>
  55. <div class="col-lg-10">
  56. <select id="basic" class="selectpicker show-tick form-control">
  57. <option>cow</option>
  58. <option data-subtext="option subtext">bull</option>
  59. <option class="get-class" disabled>ox</option>
  60. <optgroup label="test" data-subtext="optgroup subtext">
  61. <option>ASD</option>
  62. <option selected>Bla</option>
  63. <option>Ble</option>
  64. </optgroup>
  65. </select>
  66. </div>
  67. </div>
  68. </form>
  69. <hr>
  70. <form role="form">
  71. <div class="form-group row">
  72. <label for="basic" class="col-lg-2 control-label">"Basic" (liveSearch enabled)</label>
  73. <div class="col-lg-10">
  74. <select id="basic" class="selectpicker show-tick form-control" data-live-search="true">
  75. <option>cow</option>
  76. <option data-subtext="option subtext">bull</option>
  77. <option class="get-class" disabled>ox</option>
  78. <optgroup label="test" data-subtext="optgroup subtext">
  79. <option>ASD</option>
  80. <option selected>Bla</option>
  81. <option>Ble</option>
  82. </optgroup>
  83. </select>
  84. </div>
  85. </div>
  86. </form>
  87. <hr>
  88. <form role="form">
  89. <div class="form-group row">
  90. <label for="basic2" class="col-lg-2 control-label">"Basic" (multiple, maxOptions=1)</label>
  91. <div class="col-lg-10">
  92. <select id="basic2" class="show-tick form-control" multiple>
  93. <option>cow</option>
  94. <option>bull</option>
  95. <option class="get-class" disabled>ox</option>
  96. <optgroup label="test" data-subtext="another test">
  97. <option>ASD</option>
  98. <option selected>Bla</option>
  99. <option>Ble</option>
  100. </optgroup>
  101. </select>
  102. </div>
  103. </div>
  104. </form>
  105. <hr>
  106. <form role="form">
  107. <div class="form-group row">
  108. <label for="maxOption2" class="col-lg-2 control-label">multiple, show-menu-arrow, maxOptions=2</label>
  109. <div class="col-lg-10">
  110. <select id="maxOption2" class="selectpicker show-menu-arrow form-control" multiple data-max-options="2">
  111. <option>chicken</option>
  112. <option>turkey</option>
  113. <option disabled>duck</option>
  114. <option>goose</option>
  115. </select>
  116. </div>
  117. </div>
  118. </form>
  119. <hr>
  120. <form role="form">
  121. <div class="form-group row">
  122. <label for="error" class="col-lg-2 control-label">is-invalid class</label>
  123. <div class="col-lg-10">
  124. <select id="error" class="selectpicker show-tick form-control is-invalid form-control-lg" required>
  125. <option>pen</option>
  126. <option>pencil</option>
  127. <option selected>brush</option>
  128. </select>
  129. </div>
  130. </div>
  131. </form>
  132. <hr>
  133. <form role="form" class="was-validated">
  134. <div class="form-group row">
  135. <label class="control-label col-lg-2" for="country">:invalid/:valid pseudoclass</label>
  136. <div class="col-lg-10">
  137. <select id="country" name="country" class="form-control selectpicker form-control-sm" required multiple>
  138. <option>Argentina</option>
  139. <option>United States</option>
  140. <option>Mexico</option>
  141. </select>
  142. <p class="help-block">Selecting an option changes to the :valid pseudoclass</p>
  143. </div>
  144. </div>
  145. </form>
  146. <hr>
  147. <nav class="navbar navbar-light bg-light" role="navigation">
  148. <div class="container">
  149. <a class="navbar-brand" href="#">Navbar</a>
  150. <form class="form-inline" role="search">
  151. <div class="form-group">
  152. <select class="selectpicker" multiple data-live-search="true" data-live-search-placeholder="Search" data-actions-box="true">
  153. <optgroup label="filter1">
  154. <option>option1</option>
  155. <option>option2</option>
  156. <option>option3</option>
  157. <option>option4</option>
  158. </optgroup>
  159. <optgroup label="filter2">
  160. <option>option1</option>
  161. <option>option2</option>
  162. <option>option3</option>
  163. <option>option4</option>
  164. </optgroup>
  165. <optgroup label="filter3">
  166. <option>option1</option>
  167. <option>option2</option>
  168. <option>option3</option>
  169. <option>option4</option>
  170. </optgroup>
  171. </select>
  172. </div>
  173. <div class="input-group">
  174. <input type="text" class="form-control" placeholder="Search" name="q">
  175. <div class="input-group-btn">
  176. <button class="btn btn-dark" type="submit"><i class="fa fa-search"></i></button>
  177. </div>
  178. </div>
  179. <button type="submit" class="btn btn-dark">Search</button>
  180. </form>
  181. </div>
  182. <!-- .container-fluid -->
  183. </nav>
  184. <hr>
  185. <select id="first-disabled" class="selectpicker" data-hide-disabled="true" data-live-search="true">
  186. <optgroup disabled="disabled" label="disabled">
  187. <option>Hidden</option>
  188. </optgroup>
  189. <optgroup label="Fruit">
  190. <option>Apple</option>
  191. <option>Orange</option>
  192. </optgroup>
  193. <optgroup label="Vegetable">
  194. <option>Corn</option>
  195. <option>Carrot</option>
  196. </optgroup>
  197. </select>
  198. <hr>
  199. <select id="first-disabled2" class="selectpicker" multiple data-hide-disabled="true" data-size="5">
  200. <option>Apple</option>
  201. <option>Banana</option>
  202. <option>Orange</option>
  203. <option>Pineapple</option>
  204. <option>Apple2</option>
  205. <option>Banana2</option>
  206. <option>Orange2</option>
  207. <option>Pineapple2</option>
  208. <option>Apple2</option>
  209. <option>Banana2</option>
  210. <option>Orange2</option>
  211. <option>Pineapple2</option>
  212. </select>
  213. <button id="special" class="btn btn-light">Hide selected by disabling</button>
  214. <button id="special2" class="btn btn-light">Reset</button>
  215. <p>Just select 1st element, click button and check list again</p>
  216. <hr>
  217. <div class="input-group">
  218. <select class="form-control selectpicker">
  219. <option>One</option>
  220. <option>Two</option>
  221. <option>Three</option>
  222. </select>
  223. <div class="input-group-append">
  224. <span class="input-group-text">@</span>
  225. </div>
  226. </div>
  227. <hr>
  228. <div class="input-group">
  229. <div class="input-group-prepend">
  230. <span class="input-group-text">@</span>
  231. </div>
  232. <select class="form-control selectpicker" data-mobile="true">
  233. <option>One</option>
  234. <option>Two</option>
  235. <option>Three</option>
  236. </select>
  237. </div>
  238. <p>With <code>data-mobile="true"</code> option.</p>
  239. <hr>
  240. <select id="done" class="selectpicker" multiple data-done-button="true">
  241. <option>Apple</option>
  242. <option>Banana</option>
  243. <option>Orange</option>
  244. <option>Pineapple</option>
  245. <option>Apple2</option>
  246. <option>Banana2</option>
  247. <option>Orange2</option>
  248. <option>Pineapple2</option>
  249. <option>Apple2</option>
  250. <option>Banana2</option>
  251. <option>Orange2</option>
  252. <option>Pineapple2</option>
  253. </select>
  254. <hr>
  255. <div class="form-group">
  256. <label for="tokens">Key words (data-tokens)</label>
  257. <select id="tokens" class="selectpicker form-control" multiple data-live-search="true">
  258. <option data-tokens="first">I actually am called "one"</option>
  259. <option data-tokens="second">And me "two"</option>
  260. <option data-tokens="last">I am "three"</option>
  261. </select>
  262. </div>
  263. <hr>
  264. <form>
  265. <div class="form-group row">
  266. <label class="col-lg-2 control-label" for="lunchBegins">searchStyle: 'begins'</label>
  267. <div class="col-lg-10">
  268. <select id="lunchBegins" class="selectpicker" data-live-search="true" data-live-search-style="begins" title="Please select a lunch ...">
  269. <option>Hot Dog, Fries and a Soda</option>
  270. <option>Burger, Shake and a Smile</option>
  271. <option>Sugar, Spice and all things nice</option>
  272. <option>Baby Back Ribs</option>
  273. <option>A really really long option made to illustrate an issue with the live search in an inline form</option>
  274. </select>
  275. </div>
  276. </div>
  277. </form>
  278. </div>
  279. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  280. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.bundle.min.js"></script>
  281. <script src="../dist/js/bootstrap-select.js"></script>
  282. <script>
  283. function createOptions(number) {
  284. var options = [], _options;
  285. for (var i = 0; i < number; i++) {
  286. var option = '<option value="' + i + '">Option ' + i + '</option>';
  287. options.push(option);
  288. }
  289. _options = options.join('');
  290. $('#number')[0].innerHTML = _options;
  291. $('#number-multiple')[0].innerHTML = _options;
  292. $('#number2')[0].innerHTML = _options;
  293. $('#number2-multiple')[0].innerHTML = _options;
  294. }
  295. var mySelect = $('#first-disabled2');
  296. createOptions(4000);
  297. $('#special').on('click', function () {
  298. mySelect.find('option:selected').prop('disabled', true);
  299. mySelect.selectpicker('refresh');
  300. });
  301. $('#special2').on('click', function () {
  302. mySelect.find('option:disabled').prop('disabled', false);
  303. mySelect.selectpicker('refresh');
  304. });
  305. $('#basic2').selectpicker({
  306. liveSearch: true,
  307. maxOptions: 1
  308. });
  309. </script>
  310. </body>
  311. </html>