Javascript 删除最后一个div,而不是使用jQuery timeout将它们全部删除
我正在使用AJAX提交表单,无需重新加载。我正在用它做我的登记表。捕获错误/成功消息后,我将其附加到div中,并在5秒钟后使用超时功能将其删除 现在,如果用户单击按钮并出现错误,然后再次单击按钮(在5秒之前),则第二条错误消息div将显示相同的错误,但它将在删除第一条错误消息的同时被删除。因此,我试图实现的是将我的错误/成功消息设置为具有单独的超时。第一个错误出现,然后在2秒钟后我再次按下按钮,得到第二个错误,现在第一个错误将在5秒钟后被删除,第二个错误将一直保留到5秒钟过去 因此,我的HTML代码中有一个id为“msg response”的div,其中显示了我的错误/成功消息。 我是这样称呼他们的:Javascript 删除最后一个div,而不是使用jQuery timeout将它们全部删除,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用AJAX提交表单,无需重新加载。我正在用它做我的登记表。捕获错误/成功消息后,我将其附加到div中,并在5秒钟后使用超时功能将其删除 现在,如果用户单击按钮并出现错误,然后再次单击按钮(在5秒之前),则第二条错误消息div将显示相同的错误,但它将在删除第一条错误消息的同时被删除。因此,我试图实现的是将我的错误/成功消息设置为具有单独的超时。第一个错误出现,然后在2秒钟后我再次按下按钮,得到第二个错误,现在第一个错误将在5秒钟后被删除,第二个错误将一直保留到5秒钟过去 因此,我的HTML
$("#registerform").submit(function(event) {
var ajaxRequest;
event.preventDefault();
$("#result").html('');
var values = $(this).serialize();
ajaxRequest = $.ajax({
url: "include/auth/register.php",
type: "post",
data: values
});
ajaxRequest.done(function (response){
if ($.trim(response) == 'error') {
$("#msg-response").prepend("<div class='error-msg'>Email format isn't valid. Try again.</div>").hide().fadeIn("slow");
setTimeout(function() {
$('.error-msg').fadeOutAndRemove('slow');
}, 5000);
}
});
ajaxRequest.fail(function (){
alert("error");
});
});
$(“#注册执行”).submit(函数(事件){
var ajaxRequest;
event.preventDefault();
$(“#结果”).html(“”);
var values=$(this.serialize();
ajaxRequest=$.ajax({
url:“include/auth/register.php”,
类型:“post”,
数据:值
});
ajaxRequest.done(函数(响应){
如果($.trim(响应)=‘错误’){
$(“#msg response”).prepend(“电子邮件格式无效。请重试”).hide().fadeIn(“慢”);
setTimeout(函数(){
$('.error msg').fadeOutAndRemove('slow');
}, 5000);
}
});
ajaxRequest.fail(函数(){
警报(“错误”);
});
});
那么,如何向每个div添加单独的超时?类为的所有div都没有一个超时。错误消息
提前感谢。有趣的是,我将我的错误msg div设置为一个ID而不是类,从而使其正常工作,如下所示:
$("#registerform").submit(function(event) {
var ajaxRequest;
event.preventDefault();
$("#result").html('');
var values = $(this).serialize();
ajaxRequest = $.ajax({
url: "include/auth/register.php",
type: "post",
data: values
});
ajaxRequest.done(function (response){
if ($.trim(response) == 'error') {
$("#msg-response").prepend("<div id='error-msg'>Email format isn't valid. Try again.</div>").hide().fadeIn("slow"); // Changed line
setTimeout(function() {
$('#error-msg').fadeOutAndRemove('slow'); // Changed line
}, 5000);
}
});
ajaxRequest.fail(function (){
alert("error");
});
});
$(“#注册执行”).submit(函数(事件){
var ajaxRequest;
event.preventDefault();
$(“#结果”).html(“”);
var values=$(this.serialize();
ajaxRequest=$.ajax({
url:“include/auth/register.php”,
类型:“post”,
数据:值
});
ajaxRequest.done(函数(响应){
如果($.trim(响应)=‘错误’){
$(“#msg response”).prepend(“电子邮件格式无效。请重试”).hide().fadeIn(“slow”);//更改了行
setTimeout(函数(){
$('#error msg').fadeOutAndRemove('slow');//更改了行
}, 5000);
}
});
ajaxRequest.fail(函数(){
警报(“错误”);
});
});
我有点困惑,所以至少有人能给我写信解释为什么我现在使用ID而不是使用类是好的?这是正确的方法吗?您可以将您的
.error msg
存储在var
中,然后通过var
引用将其删除:
var error = $("<div class='error-msg'>Email format isn't valid. Try again.</div>");
error.fadeOutAndRemove('slow');
var error=$(“电子邮件格式无效,请重试。”);
错误。淡出删除(“慢”);
最终代码:
if ($.trim(response) == 'error') {
var error = $("<div class='error-msg'>Email format isn't valid. Try again.</div>");
$("#msg-response").prepend(error).hide().fadeIn("slow");
setTimeout(function() {
error.fadeOutAndRemove('slow');
}, 5000);
}
if($.trim(响应)='error'){
var error=$(“电子邮件格式无效。请重试。”);
$(“#msg response”).prepend(error.hide().fadeIn(“slow”);
setTimeout(函数(){
错误。淡出删除(“慢”);
}, 5000);
}
在提交时禁用提交按钮,并在提交后禁用5s@LinkinTed你能看看我的答案吗?我不知道为什么有人对我投了反对票,我只是发布了我所做的,并问这是正确的方法。。。