2017-12-03 8 views
0

年または州が更新されるたびに郡のドロップダウンリストを更新するテストスクリプトがあります。年が選択されているときにリテラル文字列を使用すると、郡リストが正常に更新されました。しかし、私は郡リストにajax呼び出しを使用して、リストを構築するために(varオプション)を使用したときに、(varオプション)の値が有効なドロップダウンリストを含んでいることを確認したにもかかわらず、オプション。AJAXドロップダウンリストがvar文字列変数で更新されない

助けてください! おかげで、代わりに、なぜすぐに呼んでなく、あなたの$アヤックスを呼び出すために別の関数を使用しての

$('#State').on("change", function() { 
      var state = $('#State').val(); 
      var year = $('#Year').val(); 
      var obj = { 
       state: state, 
       year:year 
      }; 
      alert("State changed:" + state + ":" + year); 


      AjaxCall('/RIC/GetCounties', JSON.stringify(obj), 'POST').done 
      (function (response) { 
        if (response) { 

         $('#DataId').html("<option value='test'>Test</option>"); 
         var options = ''; 
         options += "<option value='Select'>Select</option>\n"; 
         for (i in response) { 
          options += "<option value='" + response[i].DataId + "'>" + response[i].County + "</option>\n"; 
         } 
         $('#DataId').html("<option value='Select'>Select-S</option><option value='16'>Alameda-S</option>"); 
         alert("Statitical Areas(S): " + options); 
         //$('#DataId').html(options);  //This should work. How to get the value of options into the string 
         //$('#DataId').append(options); 
        } 
      }).fail(function (error) { 
        alert("County Error:" + error.StatusText); 
      }); 
     }); 

     $('#Year').on("change", function() { 
      var state = $('#State').val(); 
      var year = $('#Year').val(); 
      var obj = { 
       state: state, 
       year: year 
      }; 

      alert("Year changed:" + state +":"+ year); 

      AjaxCall('/RIC/GetCounties', JSON.stringify(obj), 'POST').done 
       (function (response) { 
        if (response) { 

         $('#DataId').html("<option value='test'>Test</option>"); 
         var options = ''; 
         options += "<option value='Select'>Select</option>\n"; 
         for (i in response) { 
          options += "<option value='" + response[i].DataId + "'>" + response[i].County + "</option>\n"; 
         } 
         //$('#DataId').html("<option value='Select'>Select-Y</option><option value='16'>Alameda-Y</option>"); 
         $('#DataId').html(options);     //This should work. How to get the value of options into the string 
         alert("Statitical Areas(Y): " + options); 
         //$('#DataId').append(options); 

        } 
       }).fail(function (error) { 
        alert("County Error:" + error.StatusText); 
       }); 
     }); 
    }); 

    function AjaxCall(url, data, type) { 
       return  $.ajax({ 
           url:  url, 
           type:  type  ?  type  :  'GET', 
           data:  data, 
           contentType:  'application/json' 
        }); 
    }   

答えて

0

。あなたがしたことに対するパフォーマンスの改善はありません。コードを元に戻して、低い条件に進む前に応答を待つ場合は、asyncプロパティを追加してください。

私は、これはあなたが

+0

いけない、再生のための感謝を –

+0

をチェックすることを忘れ役立つことを願っています。 私の質問は次の2行です: $( '#DataId')。html(options); 対 $( '#DataId').html( "); 2行目は機能しますが、最初の行は機能しません。 私は、問題が解決された改善を明確に見ることができます。 –

+0

こんにちはケネスをupvote :)または特に他の開発者に後で使用するためとして正しい答え:) – user495230

関連する問題