【发布时间】:2021-12-28 15:43:53
【问题描述】:
我遇到了一个问题,由于我无法理解的原因,我的发帖请求被重复。我正在使用 jQuery POST 请求将表单提交到 php 脚本以将其插入 SQL 数据库。
它只在某些情况下发生,而且并非始终如一。 9/10 次按预期工作,但有时 ajax 调用重复 2 或 3 次。
重复代码块:
函数 submitLog(){
let log = document.getElementById('logContent').value;
let project = document.getElementById('logger_active_project').innerHTML;
let category = document.getElementById('categorySelect').value;
let projectID = document.getElementById('logger_active_project_id').value;
let submit = document.getElementById('submit');
submit.disabled = true;
console.log('starting ajax post request');
$.post('./includes/logger/scripts/add_log.php', {
log:log,
project:project,
category:category,
project_id:projectID
}, function(data, status){
document.getElementById('logContent').value= "";
submit.disabled = false;
console.log('ajax callback fired.' + data);
})
} 编辑:
似乎只有在与以下功能一起使用时才会发生:
函数 submitLogByEntering(){ let log = document.getElementById('logContent');
log.addEventListener("keyup", function(event) {
// Number 13 is the "Enter" key on the keyboard
if (event.keyCode === 13) {
// Cancel the default action, if needed
event.preventDefault();
submitLog();
}
});
}
当使用按钮复制问题时,我无法让它重复。
提前非常感谢您提供的任何提示,让我找到正确的方向来解决这个热点问题!
【问题讨论】:
-
嗨,你确定它被烧了 2-3 次吗?有时浏览器控制台不是你最好的朋友。如果你尝试了 10 次,你看到 1 次重复了 3 次,那么数据库中是否有 12 个添加的对象而不是 10 个?如果没有,那么你的脚本是可以的,如果有 12 个,那么请提供更多关于你的代码的信息。
-
它确实会触发多次。 DB 显示相同的帖子,只是增加了一个 ID。
标签: javascript php jquery