2012-02-27 12 views
0

良い一日、jqueryの移入ドロップダウン

私はオンラインを見て、JSONとjQueryを使用してドロップダウンに関する記事を読みました。しかし、私は正しい構文を得ることができません。ページが読み込まれたら、すべての町を含むように町のドロップダウンをします。ユーザーがコミュニティを選択すると、その町のコミュニティのみが表示されます。

何か助けていただければ幸いです。 http://jsfiddle.net/ccync/後世のために

、JavaScriptコードは以下の通りです:ここに私のコードを見てください

+0

あなたは 'change'イベントにバインドするのではなく、'クリック'イベント。 – meagar

答えて

0

http://jsfiddle.net/latoyale/XgxCP/1/は、私が働いてフォーク作ら

// JSON data start 

var data = [ 
    [ 
       {optionValue: 0,url: 'Choose Town',community: 'Choose Town'}, 
       {optionValue: 1,url: '/dutchess/amenia',community: 'Amenia'}, 
       {optionValue: 2,url: '/dutchess/arlington',community: 'Arlington'}, 
       {optionValue: 3,url: '/dutchess/barrytown',community: 'Barrytown'} 
    ], 


      [ {optionValue: 0,url: 'Choose Town',community: 'Choose Town'}, 
       {optionValue: 32,url: '/orange/Campbell-hall',community: 'Campbell Hall'}, 
       {optionValue: 33,url: '/orange/central-valley',community: 'Central Valley'}, 
       {optionValue: 34,url: '/orange/chester',community: 'Chester'}, 
    ] 

      ]; 

// JSON data end 


$(function() { 

    $('#page-changer')[0].reset(); // resets form onload 

    var $county = $('#county'); 
    var $township = $('#township'); 
    function updateTownshipOptions(){ 
     var selected = $county.val(); 
     if (selected) { 
      options = []; 
      var selected_data = data[$county.val()-1]; 
      for (var i=0; i<selected_data.length; i++) { 
       options.push('<option value="'+selected_data[i].optionValue+'">'+selected_data[i].community+'</option>'); 
      } 
      $township.html(options.join('')); 
     } 
    }  
    updateTownshipOptions(); 
    $county.change(updateTownshipOptions); 

}); 
+0

ありがとう、これは私の元のコードよりもはるかに洗練されています。しかし、落ちた町には、すべての町が積み込まれているわけではありません。ユーザーが町のドロップダウンを最初にクリックすると、私はすべての "コミュニティ"を表示する必要があります。郡のドロップダウンが選択されると、リストにはその郡の町のみが表示されます。 – latoyale

+0

その問題は、あなたの 'data'を設定した方法です。それぞれのオプションセットをループして、「Choose a Town」オプションを除外し、すべてを1つのリストにロールするのは現実的ではありません。これが通常行われる方法は、元のフォームにすべてのオプションが含まれていることです。次に、郡が選択されると、選択された選択肢のオプションだけをフェッチするAJAXリクエストが発生します。 –

+0

この機能に対応するためにデータを改訂することができます。いったんやったら、コミュニティデータを検索する構文が何であるかを知りたい。 – latoyale

関連する問題