У меня есть приложение jQuery, корзина для покупок, которая отправляет информацию на сервер, если изменяется поле ввода текста. Это делается в запросе Ajax. Теперь, если Ajaxrequest имеет успех, я хочу асинхронно перезагрузить авизуальный пакет. Код выглядит следующим образом:Могу ли я сделать запрос Ajax внутри текущего запроса Ajax (например, на функцию обратного вызова успеха)?
$(document).ready(function() {
var jInput = $(":input");
jInput.change(function() {
var vareAntal = $(this).val();
var vareID = $(this).siblings("input#vareID").val();
$.ajax({
type: 'POST',
url: 'checkout.aspx',
data: { 'ID': vareID, 'Antal': vareAntal },
success: function() {
$("#newbasket").load(location.href + " #newbasket>*", "");
}
});
});
});
Это работает, но только один раз! Если я изменю текстовое поле ввода, после того, как страница будет загружена в первый раз, div с идентификатором newbasket перезагружается асинхронно. Но если я попытаюсь изменить его снова, ничего не произойдет.
Я попытался выполнить некоторую отладку с Firebug, и в первый раз, когда я изменяю текстовое поле ввода, он запускает POST-событие, а затем GET-событие, когда POST-событие является успешным. Но после этого ничего не происходит, когда я снова меняю поле ввода текста.
Итак, как мне добиться запуска метода .load() после каждого изменения ввода текста?
Я также пытался поэкспериментировать с функцией .ajaxComplete(), но это, конечно, привело к бесконечному циклу, так как .load() является ajax-объектом.
Спасибо, это работает как шарм! – MadsMadsDk