Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 删除最后一个div,而不是使用jQuery timeout将它们全部删除_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 删除最后一个div,而不是使用jQuery timeout将它们全部删除

Javascript 删除最后一个div,而不是使用jQuery timeout将它们全部删除,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用AJAX提交表单,无需重新加载。我正在用它做我的登记表。捕获错误/成功消息后,我将其附加到div中,并在5秒钟后使用超时功能将其删除 现在,如果用户单击按钮并出现错误,然后再次单击按钮(在5秒之前),则第二条错误消息div将显示相同的错误,但它将在删除第一条错误消息的同时被删除。因此,我试图实现的是将我的错误/成功消息设置为具有单独的超时。第一个错误出现,然后在2秒钟后我再次按下按钮,得到第二个错误,现在第一个错误将在5秒钟后被删除,第二个错误将一直保留到5秒钟过去 因此,我的HTML

我正在使用AJAX提交表单,无需重新加载。我正在用它做我的登记表。捕获错误/成功消息后,我将其附加到div中,并在5秒钟后使用超时功能将其删除

现在,如果用户单击按钮并出现错误,然后再次单击按钮(在5秒之前),则第二条错误消息div将显示相同的错误,但它将在删除第一条错误消息的同时被删除。因此,我试图实现的是将我的错误/成功消息设置为具有单独的超时。第一个错误出现,然后在2秒钟后我再次按下按钮,得到第二个错误,现在第一个错误将在5秒钟后被删除,第二个错误将一直保留到5秒钟过去

因此,我的HTML代码中有一个id为“msg response”的div,其中显示了我的错误/成功消息。 我是这样称呼他们的:

$("#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你能看看我的答案吗?我不知道为什么有人对我投了反对票,我只是发布了我所做的,并问这是正确的方法。。。