2017-03-25 9 views
-1

jsonファイルのjsonデータでselectize.jsを使用して、 "options"タグを "select"タグに追加しようとしていますが、できません。jsonでjsonを選択していません

以下は私のコードです。ここ

<script type="text/javascript"> 
$(function() { 
    $.getJSON("dist/cc.json", function(data) { 
        data = data.smp_country_code; 
        alert(JSON.stringify(data)); 
        $.each(data, function(key, val) { 
        $(".cc").append("<option value='" + key + "'>" + val + "</option>"); 
       }); 
      }); 
}); 
</script> 

<select id="select-state" class=""></select> 

<script> 
$('#select-state').selectize({ 
    valueField: 'country', 
    labelField: 'country', 
    searchField: 'country', 
    options: [], 
    load: function(query, callback) { 
    if (!query.length) return callback(); 
    $.ajax({ 
     url: 'http://localhost/maya/dist/country.json', 
     type: 'GET', 
     dataType: 'json', 
     data: { 
      country: query, 
     }, 
     error: function() { 
      callback(); 
     }, 
     success: function(res) { 
      callback(res); 
     } 
    }); 
    } 
}); 
</script> 

それは私が使用していないとき enter image description here

絵に参照してください動作しない私のJSONファイル "cc.json"

{ 
"smp_country_code": { 
     "0": "Select a state...", 
     "AL":"Alabama", 
     "AK":"Alaska", 
     "AZ":"Arizona", 
     "AR":"Arkansas", 
     "CA":"California", 
     "CO":"Colorado", 
     "CT":"Connecticut", 
     "DE":"Delaware", 
     "DC":"District of Columbia", 
     "FL":"Florida", 
     "GA":"Georgia", 
     "HI":"Hawaii", 
     "ID":"Idaho", 
     "IL":"Illinois", 
     "IN":"Indiana", 
     "IA":"Iowa", 
     "KS":"Kansas", 
     "KY":"Kentucky", 
     "LA":"Louisiana", 
     "ME":"Maine", 
     "MD":"Maryland", 
     "MA":"Massachusetts", 
     "MI":"Michigan", 
     "MN":"Minnesota", 
     "MS":"Mississippi", 
     "MO":"Missouri", 
     "MT":"Montana", 
     "NE":"Nebraska", 
     "NV":"Nevada", 
     "NH":"New Hampshire", 
     "NJ":"New Jersey", 
     "NM":"New Mexico", 
     "NY":"New York", 
     "NC":"North Carolina", 
     "ND":"North Dakota", 
     "OH":"Ohio", 
     "OK":"Oklahoma", 
     "OR":"Oregon", 
     "PA":"Pennsylvania", 
     "RI":"Rhode Island", 
     "SC":"South Carolina", 
     "SD":"South Dakota", 
     "TN":"Tennessee", 
     "TX":"Texas", 
     "UT":"Utah", 
     "VT":"Vermont", 
     "VA":"Virginia", 
     "WA":"Washington", 
     "WV":"West Virginia", 
     "WI":"Wisconsin", 
     "WY":"Wyoming" 
     } 
} 

ですjson、作品です。コードの下の は、jsonデータを使用しない通常の使用です。ここ

<select id="select-state"> 
     <option value="">Select a state...</option> 
     <option value="AL">Alabama</option> 
     <option value="AK">Alaska</option> 
     <option value="AZ">Arizona</option> 
     <option value="AR">Arkansas</option> 
     <option value="CA">California</option> 
     <option value="CO">Colorado</option> 
     <option value="CT">Connecticut</option> 
     <option value="DE">Delaware</option> 
     <option value="DC">District of Columbia</option> 
     <option value="FL">Florida</option> 
     <option value="GA">Georgia</option> 
     <option value="HI">Hawaii</option> 
     <option value="ID">Idaho</option> 
     <option value="IL">Illinois</option> 
     <option value="IN">Indiana</option> 
     <option value="IA">Iowa</option> 
     <option value="KS">Kansas</option> 
     <option value="KY">Kentucky</option> 
     <option value="LA">Louisiana</option> 
     <option value="ME">Maine</option> 
     <option value="MD">Maryland</option> 
     <option value="MA">Massachusetts</option> 
     <option value="MI">Michigan</option> 
     <option value="MN">Minnesota</option> 
     <option value="MS">Mississippi</option> 
     <option value="MO">Missouri</option> 
     <option value="MT">Montana</option> 
     <option value="NE">Nebraska</option> 
     <option value="NV">Nevada</option> 
     <option value="NH">New Hampshire</option> 
     <option value="NJ">New Jersey</option> 
     <option value="NM">New Mexico</option> 
     <option value="NY">New York</option> 
     <option value="NC">North Carolina</option> 
     <option value="ND">North Dakota</option> 
     <option value="OH">Ohio</option> 
     <option value="OK">Oklahoma</option> 
     <option value="OR">Oregon</option> 
     <option value="PA">Pennsylvania</option> 
     <option value="RI">Rhode Island</option> 
     <option value="SC">South Carolina</option> 
     <option value="SD">South Dakota</option> 
     <option value="TN">Tennessee</option> 
     <option value="TX">Texas</option> 
     <option value="UT">Utah</option> 
     <option value="VT">Vermont</option> 
     <option value="VA">Virginia</option> 
     <option value="WA">Washington</option> 
     <option value="WV">West Virginia</option> 
     <option value="WI">Wisconsin</option> 
     <option value="WY">Wyoming</option> 
     </select> 

私を助けてください写真のように、私が動作するようにコードをしようとしていますJSONと

せずに通常の使用です。 enter image description here

答えて

3

cc.jsonの出力を変更するアクセス権があるようですか?もしそうなら、あなたは出力に

[{"code":"AL","name":"Alabama"}, ... ,{"code":"WY","name":"Wyoming"}] 

のようなものを、それをフォーマットすることができ、その後、あなたのselectizeコールはあなたが$ .getJSON

でオプションを手動で追加する必要はありません

$('#select-state').selectize({ 
    valueField: 'code', 
    labelField: 'name', 
    searchField: 'name', 
    options: [], 
    load: function(query, callback) { 
    if (!query.length) return callback(); 
    $.ajax({ 
     url: 'http://localhost/maya/dist/cc.json', 
     type: 'GET', 
     dataType: 'json', 
     data: { 
      country: query, 
     }, 
     error: function() { 
      callback(); 
     }, 
     success: function(res) { 
      callback(res); 
     } 
    }); 
    } 
}); 

ようなものになるだろう

関連する問題