我想在焦點丟失輸入字段或用戶點擊輸入字段時請求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個請求等單元我的瀏覽器崩潰。
編輯 包括第二功能。我的回覆是HTML,我清除了body並將html放回到body中。之後,我再次執行editVK函數。因爲我想在編輯輸入框時觸發其他請求。
什麼你面對 –
多少元素「.check_vk」的問題,你用? – ReeCube
你在這裏發佈的代碼看起來是正確的。你面對的(相當普遍的初學者)問題是你在某個地方註冊了一個Eventhandler在另一個事件處理器(可能在'keydown')裏面,這會增加觸發每個後續事件的函數的數量。或者,您將課程授予多個元素,並忘記停止事件傳播。 – Christoph