2016-07-15 10 views
1

私はj-queryを使って別のドロップダウンの選択に基づいてドロップダウンを設定する必要があるスクリプトを書いていますが、最初のドロップダウンを選択すると、私がどこかに間違っていたら私に!データが表示されないドロップダウンの人口

script.html

<div class="form-group"> 
    <select id="json-one" class="form-control"> 
    <option selected="" value="base">Please Select</option> 
    <option value="Doctor">Doctor</option> 
    <option value="Engineer">Engineer</option> 
    <option value="Lawyer">Lawyer</option> 
    </select> 
</div> 

<div class="form-group"> 
    <select id="json-two" class="form-control"> 
     <option>Please choose from above</option> 
    </select> 
</div> 


<script> 
    var data = { 
"Doctor":"General,specilist", 
"Engineer":"Computers,electronic" 
"Lawyer":"Civil,Criminal" 
}; 
$("#json-one").change(function() { 

       var $dropdown = $(this); 

       //$.getJSON("data.json", function(data) { 

        var key = $dropdown.val(); 
        var vals = []; 

        switch(key) { 
         case 'Doctor': 
          vals = data.Doctor.split(","); 
          break; 
         case 'Engineer': 
          vals = data.Engineer.split(","); 
          break; 
         case 'Lawyer': 
          vals = data.Lawyer.split(","); 
          break; 
         case 'base': 
          vals = ['Please choose from above']; 
        } 

        var $jsontwo = $("#json-two"); 
        $jsontwo.empty(); 
        $.each(vals, function(index, value) { 
         $jsontwo.append("<option>" + value + "</option>"); 
        //}); 

       }); 
      }); 
    </script> 
+0

値は正しく設定されていますか?あなたはコンソールログを作成しましたか? –

+0

どこが間違っているのか分かりましたか?変更機能が起動していますか?あなたはそれらを選択した後に正しいドロップダウンを持っていますか? jsonはサーバーから戻ってきますか? jsonに正しいデータが含まれていますか? VALはスイッチ後に正しいデータを含んでいますか?トリガーを追加するループはありますか? – Shilly

+0

はい、私はその有効なjsonデータを与えることをチェックしました..! –

答えて

0

あなたのコードは正常に動作する必要がありますが、2つの物事の世話をする必要があります。

1:data.jsonファイルが必要です。

2:あなたは、それは以下のplunkerで働いて見ることができます取得JSON

{ 
    "beverages": "coke,pepsi", 
    "snacks":"chips,biscuit" 
} 

の成功コールバックでそれを消費しているようdata.jsonでJSONオブジェクトが同じ構造を持っている必要があります。

Plunker:私はthisフィドルにあなたと同じコードをチェックしたhttp://plnkr.co/edit/2dI09RIDuFGc9XMKXU1h?p=preview

+0

ありがとう! –

0

唯一の違いは、jsonを非同期にロードしていないことです。したがって、json部品の読み込み、またはファイルがその場所に存在するかどうかを確認する必要があります。

<div class="form-group"> 
    <select id="json-one" class="form-control"> 
     <option selected="" value="base">Please Select</option> 
     <option value="beverages">Beverages</option> 
     <option value="snacks">Snacks</option> 
    </select> 
</div> 

<div class="form-group"> 
    <select id="json-two" class="form-control"> 
     <option>Please choose from above</option> 
    </select> 
</div> 

var data = { 
"beverages":"tea,coffee", 
"snacks":"namkeen,biscuits" 
}; 
$("#json-one").change(function() { 

       var $dropdown = $(this); 

       //$.getJSON("data.json", function(data) { 

        var key = $dropdown.val(); 
        var vals = []; 

        switch(key) { 
         case 'beverages': 
          vals = data.beverages.split(","); 
          break; 
         case 'snacks': 
          vals = data.snacks.split(","); 
          break; 
         case 'base': 
          vals = ['Please choose from above']; 
        } 

        var $jsontwo = $("#json-two"); 
        $jsontwo.empty(); 
        $.each(vals, function(index, value) { 
         $jsontwo.append("<option>" + value + "</option>"); 
        //}); 

       }); 
      }); 

他に必要なことがある場合は教えてください。

+0

有用な答えのためにsirありがとう.iは同じ基地に私のコードの日付を記入していますが、悲しいことに私が行ったように働いていません.. !! –

+0

あなたが気にしないなら、私を助けてください.. ..! –

+1

@忍者:データがgetJSON関数の成功コールバックでアクセスされ、JSONデータが受信された後にのみ実行されるため、非同期呼び出しはここでは重要ではありません。 – Deep

関連する問題