Selectize.js依赖下拉JSON文件内容

时间:2018-08-19 15:55:35

标签: javascript json parent-child selectize.js chained-select

我想使用Selectize.js创建一个依赖(父/子/链式)下拉列表。

它正在读取JSON文件,但是它将每个子选项分配给所有父选项。为了将子选项分配给假定的父选项,我需要做什么?

注意: 该代码正在运行,但是我不知道该如何写JSON文件的内容。由于服务器问题,目前无法访问Selectize.js提供的示例JSON文件。

下面您可以看到我的代码: https://codepen.io/anon/pen/mGbMBv#anon-login

    <!doctype html>
<html lang="en">
   <head>
      <!-- Required meta tags -->
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <title></title>
      <!-- Bootstrap CSS -->
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.bootstrap3.min.css" integrity="sha256-ze/OEYGcFbPRmvCnrSeKbRTtjG4vGLHXgOqsyLFTRjg=" crossorigin="anonymous" />
      <title>UCROSS Study Abroad</title>
   </head>
   <body>
      <div class="container">
         <form class="mt-5">
            <select id="select-cities-state" name="select-cities-state">
               <option value="">Select something</option>
               <option value="1">bir</option>
               <option value="2">iki</option>
               <option value="3">uc</option>
               <option value="4">dord</option>
            </select>
            <select id="select-cities-city" name="select-cities-city">
               <option value="">Select something</option>
            </select>
         </form>
      </div>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js" integrity="sha256-+C0A5Ilqmu4QcSPxrlGpaZxJ04VjsRjKu+G82kl5UJk=" crossorigin="anonymous"></script>
      <script>
         $(function() {
           $('select').selectize(options);
         });

         var xhr;
         var select_state, $select_state;
         var select_city, $select_city;

         $select_state = $('#select-cities-state').selectize({
         onChange: function(value) {
             if (!value.length) return;
             select_city.disable();
             select_city.clearOptions();
             select_city.load(function(callback) {
                 xhr && xhr.abort();
                 xhr = $.ajax({
                     url: 'https://api.myjson.com/bins/hje1g',
                     success: function(results) {
                         select_city.enable();
                         callback(results);
                     },
                     error: function() {
                         callback();
                     }
                 })
             });
         }
         });

         $select_city = $('#select-cities-city').selectize({
         valueField: 'name',
         labelField: 'name',
         searchField: ['name']
         });

         select_city  = $select_city[0].selectize;
         select_state = $select_state[0].selectize;

         select_city.disable();
      </script>

0 个答案:

没有答案