0

ユーザーが特定の教授を選択するドロップダウンボックス(選択)があります。その後、AJAX リクエストはサーバーから JSON データを取得し、別のドロップダウン ボックスにその教授の科目を入力します。2 番目のドロップダウン ボックスは問題なく表示されます。しかし、2 番目のドロップダウン ボックスにある古い値 (「最初に教授を選択してください!」) のテキストは、2 番目のドロップ ダウン ボックスにデータが入力された後も、デフォルトの選択肢として表示されています。

ここに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 subject" というテキストの値であると言っていますが、これは本当に奇妙です。

4

1 に答える 1

0

次のように、件名のコンボ val を -1 に設定してみてください。

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

入力された新しい値にコンボを設定したことがなく、古い値を保持しているようです。

于 2012-04-25T17:40:11.590 に答える