2012-04-25 11 views
0

私はドロップダウンボックス(選択)を使用して、特定の教授を選択します。その後、AJAXリクエストはサーバーからJSONデータを取得し、その教授の件名を持つ別のドロップダウンボックスに入力します。 2番目のドロップダウンボックスに問題はありません。しかし、2番目のドロップダウンボックスに古い値のテキスト( "先に教授を選択してください!")が表示されています。ここでJQuery:Selectが設定されていますが、表示されるテキストが古いです

はJSです:

$('#professorCombo').combobox({ 
      selected: function() { 
       validateAllFields(); 
       var idProfessor = $(this).val(); 

       var servletUrl = 'GetTeachersServlet?idProfessor=' + idProfessor; 

       $.getJSON(servletUrl, function(data) { 
        var subject = $('#subjectCombo'); 

        $('option', subject).remove(); 

        if (data) { 
         subject.append($("<option/>").val(-1).text("Select subject...")); 

         $.each(data, function(key, value) { 
          subject.append($('<option/>').val(key).text(value)); 
         }); 
        } else { 
         subject.append($("</option/>").val(-1).text("There are no subjects available!")); 
        } 
       }); 
      } 
     }); 

ボックス2番目のドロップダウンをデフォルトの選択肢があるべき移入した後:「対象の選択します」。ドロップダウンボックスを開いた場合、これが最初の選択ですが、ドロップダウンボックスにはまだ古いテキストが表示されます(「教授を最初に選択してください」)。私は何とかそれをリフレッシュするべきだと思います。また、Firebugは、ドロップダウンボックスの選択された値がテキスト "Select Subjects"という値であり、これは本当に不思議です。

答えて

0

は、このような-1の対象とコンボvalを、設定してみてください:

subject.val(-1).attr('selected',true); 

あなたが取り込まれ、新しい値にコンボを設定したことがないようだ、とその古い値を保持。

+0

これは論理的な解決策ですが、2番目のドロップダウンでも古いテキストが表示されます。とにかくありがとう。 –

+0

どこに行を追加しましたか?あなたのif(data){...}セクションの最後にあるはずです。 – Jlange

+0

最初に私はそれを追加しました:subject.append($( "

関連する問題