我想在焦点丢失输入字段或用户点击输入字段时请求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