Текстовое поле не обновляется, когда данные извлекаются из XML - PullRequest
0 голосов
/ 29 ноября 2011

хорошо, у меня есть выпадающий список, а под ним текстовое поле.Если я заполняю статическое текстовое поле и нажимаю на него, я хочу заполнить текстовое поле значениями, выбранными в выпадающем списке выбора.Работает нормально.вот это

DEMO

Теперь я выбираю раскрывающиеся опции выбора из xml, и когда я снова использую его, чтобы обновить текстовое поле, щелкнув его параметр,это не работает;

Вот DEMO

Я знаю, что во втором демо, XML не в правильном месте, но я проверил этона моей локальной машине, и она не работает.

Любая помощь приветствуется.Спасибо

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Я предполагаю, что вы на самом деле используете несколько вариантов выбора.Если это так, просто привяжите обработчик к элементу select вместо:

$(".generalTemplate").click(function() {
    var su = $(this).find(':selected').text();
    $("#sub").val(su);
});

. Он находит выбранный элемент при нажатии и не требует привязки к отдельным элементам option после того, как они 'вставлен.

Если вы не используете кратное число, вам нужно привязать к событию change.

$(".generalTemplate").change(function() {
    var selected = $(this).find(':selected');
    if( selected.index() > 0 ) {
        var su = selected.text();
        $("#sub").val(su);
    }
});

В конечном итоге, произошло то, что асинхронный AJAX-вызов выполнял свою функцию обратного вызова после вы запустили код для привязки обработчиков.

Другими словами, код не ждетответ AJAX, поступающий до его выполнения.Связываясь с самим select, вы знаете, что он уже доступен в документе, поэтому проблем с синхронизацией нет.

1 голос
/ 29 ноября 2011

Вы можете попробовать использовать live :

$(".generalTemplate >option").live("click",function() {


                    var su = $(this).text();
                    $("#sub").val(su);
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...