Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用keyup事件时,会触发两次ajaxpost_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用keyup事件时,会触发两次ajaxpost

Javascript 使用keyup事件时,会触发两次ajaxpost,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个zipcode检查器,它在输入字段的长度等于6后使用ajax发布。这是可行的,只是ajax发布了两次。为什么呢?我使用的api每个月有1000个调用,因此这种行为已经将其减少了一半 也许这对我来说是有意义的,因为在键入第7个字符时会再次触发一些错误,但事实并非如此,当我只键入6个字符时,ajax会触发两次 $(“body”)。在(“keyup”上,在“billing#u postcode”上,函数(){ var值=$(this.val(); var housenumber=$(“#账单

我有一个zipcode检查器,它在输入字段的长度等于6后使用ajax发布。这是可行的,只是ajax发布了两次。为什么呢?我使用的api每个月有1000个调用,因此这种行为已经将其减少了一半

也许这对我来说是有意义的,因为在键入第7个字符时会再次触发一些错误,但事实并非如此,当我只键入6个字符时,ajax会触发两次

$(“body”)。在(“keyup”上,在“billing#u postcode”上,函数(){
var值=$(this.val();
var housenumber=$(“#账单#街道号”).val();
如果(housenumber.length>=1){
如果(value.length==6){
url='catalog/postcodecheck.php';
var$postcode=$(“#账单#u邮政编码”).val();
var$huissummer=$(“#账单"街道号码”).val();
var posting=$.post(url{
邮政编码:$邮政编码,
Huissummer:$Huissummer
});
过帐.完成(功能(数据){
var content=$($.parseHTML(数据));
$(“#postcoderesult”).empty().append(content);
});
}否则{
}
}否则{
警报(‘我的朋友在我的家乡’);
$(“#账单邮政编码”).val(“”);
}
});

回斯努默*

Toevoeging(期权持有人)

邮政编码*

斯特拉特纳姆*

斯塔德*


您可能会收到重复的
keyup
事件-您可以在第一次处理ajax调用时设置一个标志,并在下次进行测试,以避免重复调用。您可能会绑定两次keyup事件,因为您的代码是错误的。我注意到您绑定了keyup,但这不会抓住键,也不会粘贴代码,因此您最好使用event。正如@peeebee和@skobaljic所说,您可能绑定了keyup事件两次,添加preventDefault以阻止它调用两次
$(“body”)。on(“keyup”,“billing#postcode”,function(e){e.preventDefault()
谢谢,我用前面提到的
input
event@skobaljic修复了它。我从未听说过它,但这也可以防止用户对输入字段进行大量ajax调用。