neil_pearce

Selectize example

Aug 13th, 2021
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 3.70 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
  6.  
  7.     <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/css/bootstrap.min.css" rel="stylesheet">
  8.     <link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/css/selectize.css" rel="stylesheet">
  9.     <link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/css/selectize.default.css" rel="stylesheet">
  10.  
  11.     <base href="http://example.com/">
  12.  
  13.     <title>Selectize</title>
  14.   </head>
  15.  
  16.   <body>
  17.     <div class="container text-center mt-4">
  18.       <h1>Department / Designation Selection</h1>
  19.     </div>
  20.  
  21.     <div class="container">
  22.       <div class="row justify-content-center">
  23.         <div class="col-lg-8">
  24.           <label for="department">Departments:</label>
  25.           <select id="department" placeholder="Choose a Department..."></select>
  26.  
  27.           <label for="designation">Designations:</label>
  28.           <select id="designation" placeholder="Choose a Designation..."></select>
  29.         </div>
  30.       </div>
  31.     </div>
  32.  
  33.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  34.     <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.bundle.min.js"></script>
  35.     <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/js/standalone/selectize.min.js"></script>
  36.  
  37.     <script>
  38.       $(function (){
  39.         var xhr;
  40.         var select_department, $select_department;
  41.         var select_designation, $select_designation;
  42.  
  43.         $select_department = $('#department').selectize({
  44.           valueField: 'id',
  45.           labelField: 'name',
  46.           searchField: 'name',
  47.           create: false,
  48.           preload: true,
  49.  
  50.           load: function(query, callback) {
  51.             console.log('load');
  52.             this.settings.load = null;  // prevent selectize from loading when typing
  53.  
  54.             $.ajax({
  55.               url: 'departments',  // uses document base URL
  56.               type: 'GET',
  57.               dataType: 'JSON',
  58.  
  59.               success: function(results) {
  60.                 console.log(results);
  61.                 $select_department.options = results;
  62.                 callback(results);
  63.               },
  64.  
  65.               error: function(err) {
  66.                 console.log(err);
  67.                 callback();
  68.               }
  69.             });
  70.           },
  71.  
  72.           onChange: function(value) {
  73.             console.log('onChange' + value);
  74.             if (!value.length) return;
  75.  
  76.             select_designation.disable();
  77.             select_designation.clearOptions();
  78.             select_designation.load(function(callback) {
  79.               xhr && xhr.abort();
  80.               xhr = $.ajax({
  81.                 url: 'designations?department=' + value,  // uses document base URL
  82.                 type: 'GET',
  83.                 dataType: 'JSON',
  84.  
  85.                 success: function(results) {
  86.                   console.log(results);
  87.                   select_designation.enable();
  88.                   callback(results);
  89.                 },
  90.  
  91.                 error: function(err) {
  92.                   console.log(err);
  93.                   callback();
  94.                 }
  95.               });
  96.             });
  97.           }
  98.         });
  99.  
  100.  
  101.         $select_designation = $('#designation').selectize({
  102.           valueField: 'name',
  103.           labelField: 'name',
  104.           searchField: ['name']
  105.         });
  106.  
  107.  
  108.         select_department = $select_department[0].selectize;
  109.         select_designation = $select_designation[0].selectize;
  110.  
  111.         select_designation.disable();
  112.       });
  113.     </script>
  114.   </body>
  115. </html>
  116.  
Advertisement
Add Comment
Please, Sign In to add comment