jQuery-模糊和抠像触发多次

时间:2018-09-28 11:28:37

标签: jquery blur keyup

我有这段代码,它可以启用输入,专注于输入,然后在您单击或按Enter时触发ajax请求。

151.101.1.63 files.pythonhosted.org

它看起来还不错,除了按Enter之外,它还可以多次触发ajax。

任何人都可以建议原因吗?

谢谢

1 个答案:

答案 0 :(得分:1)

只需添加一个简单的检查,看看是否完成。然后在您准备再次进行单击检查时刷新它

var done = false;

function ajaxCall() {
    if(!done) {
        $.ajax({ url : 'file.php?var=' + var + '&nextvar=' + nextvar, 
            success: function(response) {
                console.log (response);
                done = true;
            } 
        });
    }
    $("#imp" + id).prop('disabled', true);
}

$(document).ready(function() { 
  $("body").on('click', '.input', function(){
        id = $(this).attr('id');
        $("#inp" + id).prop('disabled', false).focus(); 
  });

    $("#imp" + id).on('blur',function(e) {  ajaxCall() });
    $("#imp" + id).on('keyup',function(e) {  if(e.keyCode === 13) ajaxCall() });
});

这仅运行一次(请注意done = false)(如果要重置它),请再次使全局“完成”变量为false。