Я хочу запросить запрос ajax, когда фокус на поле ввода теряется или когда пользователь попадает в поле ввода.Запрос JQuery ajax по фокусу и введите
У меня следующий код для этого
function editVK() {
var input = $('.check_vk');
input.keydown(function() {
// DO some markup
}).focusout(function() {
// execute ajax in function
calculateVolleKist($(this));
return false;
}).on('keypress', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
// execute ajax in function
calculateVolleKist($(this));
return false;
}
});
}
function calculateVolleKist(elem) {
var regel = elem.closest("tr");
var article_id = regel.attr('data-article_id');
var basket_id = regel.attr('data-basket_id');
var vk = parseFloat(formatToDecimal(elem.val()));
$.ajax({
url: 'beltramibasket.php?action=wijzig_volle_kist&basket_id='+basket_id+'&article_id='+article_id+'&vk='+vk,
type: 'GET',
dataType: "html",
async: true,
success: function(data) {
$('.basket_body').html("");
$('.basket_body').html(data);
editVK();
}
});
}
При использовании этого кода, мое первое изменение во входных огней 1 запрос. Мое второе изменение вызывает 2 запроса, мои 3 запроса запускают запрос 4 и т. Д.
EDIT Включенная функция 2. Мой ответ - это HTML, я очищаю тело и вернул html в тело. После этого я снова выполняю функцию editVK. Потому что я хочу вызвать другой запрос при редактировании окна ввода.
Что вопрос вы столкнулись с «.check_vk» –
Сколько элементов вы используете? – ReeCube
Код, который вы разместили здесь, выглядит правильно. Вы сталкиваетесь с проблемой (довольно обычным начинающим), либо что вы где-то регистрируете Eventhandler внутри другого обработчика событий (возможно, в 'keydown'), что увеличивает количество функций, запускающих потенциально, что каждое последующее событие. Кроме того, у вас есть класс, присвоенный нескольким элементам, и забыл прекратить распространение события. – Christoph