gpt4 book ai didi

javascript - clearTimeout 无法正常工作

转载 作者:行者123 更新时间:2023-11-27 23:10:57 25 4
gpt4 key购买 nike

    //Create Account - Register Button
$('#registerCreateAccount').on('click', function() {
var uid = $('#registerUsername').val();
var email = $('#registerEmail').val();
var age = $('#registerAge').val();
var pwd = $('#registerPassword').val();
var confirmPwd = $('#registerConfirmPassword').val();
$.post('./php/register/createAccount.php', {uid: uid, email: email, age: age, pwd: pwd, confirmPwd: confirmPwd}, function(data) {
if (errTime) {
clearTimeout(errTime);
}
$('.errorMsg').html('<span class="w3-display-middle">' + data + '</span>');
var errTime = setTimeout(function() {
$('.errorMsg').html('');
}, 5000);
});
});

所以基本上我所做的是将数据发送到 PHP 文件,如果有回调,它将是一条错误消息。所以我更改了.errMsg div的html,之前是看不到的,因为它没有任何内容。因为我只希望错误消息存在 5 秒,所以我决定使用 setTimeout 在 5 秒后清除内容。

问题是当人们连续多次点击注册按钮时,setTimeout 会继续。因此,我决定在按下按钮时清除第一次超时(如果存在),但由于某种原因它不起作用。

我已经看了将近一个小时了,我似乎找不到错误,谢谢你们帮助我!

你们所有人都很棒,感谢你们如此迅速地帮助我!

最佳答案

在你的代码范围内的变量结束后的回调函数中使这个变量全局可用然后它就会工作

var errTime;
$('#registerCreateAccount').on('click', function() {
var uid = $('#registerUsername').val();
var email = $('#registerEmail').val();
var age = $('#registerAge').val();
var pwd = $('#registerPassword').val();
var confirmPwd = $('#registerConfirmPassword').val();
$.post('./php/register/createAccount.php', {uid: uid, email: email, age: age, pwd: pwd, confirmPwd: confirmPwd}, function(data) {

clearTimeout(errTime);

$('.errorMsg').html('<span class="w3-display-middle">' + data + '</span>');
errTime = setTimeout(function() {
$('.errorMsg').html('');
}, 5000);
});
});

关于javascript - clearTimeout 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46041107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com