У меня следующая проблема.У меня есть форма, где пользователь выбирает элемент с автозаполнением JQuery.После того, как пользователь выберет элемент, функция автоматически заполняет эти поля ввода значениями, возвращаемыми при вызове Ajax: itemDescriptionSales
, itemQuantity
, itemPrice
, itemPriceTotal
.После того, как все эти поля заполнены, мне нужно вызвать новую функцию recalcuateTotal
, чтобы пересчитать итоговую цену на основе значений внутри полей ввода.Проблема в том, что функция recalculateTotal
вызывается до того, как все поля ввода заполнены значением.Я попытался вызвать функцию с помощью следующего кода, но, очевидно, он не работает.
$( ".itemCode" ).on( "autocompleteselect", function( ) {
recalculateTotal();
} );
Я также попытался реализовать setTimeout(recalculateTotal, 1000)
, который бы задерживал вызов функции.Я считаю, что это не правильный подход, хотя.Есть ли у кого-нибудь предложения, как решить эту проблему?У меня есть следующий код для функции автозаполнения.Любая помощь будет принята с благодарностью!
$( function() {
$( ".itemCode" ).autocomplete({
source: function( request, response ) {
$.ajax( {
url: "items-search.php",
dataType: "json",
data: {
term: request.term
},
success: function( data ) {
response( data );
}
} );
},
minLength: 3,
select: function( event, ui ) {
$(this).parent().siblings().children(".itemDescriptionSales").val(ui.item.itemDescriptionSales);
$(this).parent().siblings().children(".itemQuantity").val(ui.item.itemQuantity);
$(this).parent().siblings().children(".itemPrice").val(ui.item.itemPrice);
$(this).parent().siblings().children(".itemPriceTotal").val((ui.item.itemPrice)*(ui.item.itemQuantity));
},
} );
} );