当失去对输入字段的关注或当用户在输入字段中点击输入时,我想请求一个 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 个请求,依此类推,我的浏览器崩溃了。
编辑 包括第二个功能。我的回应是 HTML ,我清除正文并将 html 放回正文。之后我再次执行函数editVK。因为我想在编辑输入框的时候触发其他请求。