#jquery
#jquery
Вопрос:
Я пытаюсь использовать вложенный вызов ajax, но он не работает. В вызове outer .get я извлекаю данные ISBN из файла php. Это будет использоваться для заполнения HTML-таблицы с именем «booklist». Этот работает нормально. Предполагается, что вызов inner .get проверяет ISBN и, если он возвращает значение valid, добавляет к нему галочку, но эта последняя часть не работает. В этом коде я предполагал, что переменные «index» можно увидеть внутри inner .get . Разве это не так?
$(document).ready(function()
{
$("input#autofill").click(function()
{
$.get("last_year_ISBN.php",
function(data)
{
var elements = $('#booklist .ISBN_number');
$.each(data,
function(index, obj)
{
$(elements[index]).val(obj[16]);
$.get("validate_isbn.php",
function(answer)
{
if (answer == "valid")
{
$(elements[index]).append(" < img src = 'pics/green_checkmark.png' > ");
}
},
"text");
})
},
"json");
});
$("input#clearISBNs").click(function()
{
var elements=$('#booklist .ISBN_number');
$.each(elements,
function(index, value)
{
$(elements[index]).val("");
});
});
});
Комментарии:
1. это должно быть видно … все, что находится во внешней области, должно быть видно в этой функции. Мне интересно, может быть, это пробелы между
<
ними, иimg
в этом проблема — вы пробовали настроить эту разметку или вы уверены, что подобная разметка работала в другом месте?2. Нет, это не имеет значения. И в любом случае, этот код должен был появиться в исходном коде, как только я нажал на кнопку, но этого не произошло…
3. по какой-то причине он не входит в функцию (ответ) (при тестировании в firebug… почему это так?
Ответ №1:
Он не должен создавать diff, но попробуйте создать функцию как переменную вне вызова get…
function(index, obj){
var ele = $(elements[index]).val(obj[16]);
var func = function(answer){
if (answer == "valid") {
ele.append('<img src="pics/green_checkmark.png" />');
}
};
$.get("validate_isbn.php", func, "text");
});