Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
命令´;show()´;在jquery提交表单中不起作用?_Jquery_Css_Ajax_Submit_Loading - Fatal编程技术网

命令´;show()´;在jquery提交表单中不起作用?

命令´;show()´;在jquery提交表单中不起作用?,jquery,css,ajax,submit,loading,Jquery,Css,Ajax,Submit,Loading,最简单的例子是,当用户单击submit时,我想显示一个div,其中有一个gif指示消息正在发送 Javascript: //Send mail $("div.contato-pedidooracao form").submit(function () { $(".sending").show(); //HERE.. DONT WORK!! why?? $(".contato-pedidooracao form").hide(); //THIS WORKS!! var

最简单的例子是,当用户单击submit时,我想显示一个div,其中有一个gif指示消息正在发送

Javascript:

//Send mail
$("div.contato-pedidooracao form").submit(function () {

    $(".sending").show(); //HERE.. DONT WORK!!  why??
    $(".contato-pedidooracao form").hide(); //THIS WORKS!!

    var dataString = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "Contato/SendMail",
        data: dataString,
        dataType: "json",
        success: function (data) {
            $(".sendMessage").empty();
            $(".sendMessage").append("<p>Mensagem enviada com sucesso</p>")
            $(".sendMessage").append("<p>Rezaremos por você!</p>")
            $(".sendMessage").show();
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $(".sendMessage").empty();
            $(".sendMessage").append("<p>Ocorreu um erro ao tentar enviar a mensagem</p>")
            $(".sendMessage").append("<p>Por favor, tente novamente mais tarde.</p>")
            $(".sendMessage").show();
            $(".contato-pedidooracao form").show();
        }
    });
    $(".sending").hide();
    event.preventDefault();

});
div.column > div.contato-pedidooracao > div.message
{
    display:none;
}
.sending, .sendMessage
{
    text-align:center;
}

处理过程平均需要5秒,但是
div.sending
在这个时间间隔内不会出现。

这是因为AJAX是异步的,JS不会等待它。因此,
$(“.sending”).hide()实际上是在
$(“.sending”).show()之后执行的


尝试放置
$(“.sending”).hide()在AJAX中的成功和错误函数结束时。

这是因为AJAX是异步的,JS不会等待它。因此,
$(“.sending”).hide()实际上是在
$(“.sending”).show()之后执行的


尝试放置
$(“.sending”).hide()在AJAX中的成功和错误函数的末尾。

看起来他试图显示的元素在他隐藏的元素之外,所以这不重要……如果您指的是
$(“.contato pedidooracao form”).hide()这不是我想的
hide()
。我指的是底部的一个,在AJAX代码之后。这完全是同一个元素。哎呀,很抱歉,非常抱歉:)+1用一剂澄清剂更新了答案;)看起来他试图显示的元素在他隐藏的元素之外,所以这不重要……如果您指的是
$(“.contato pedidooracao form”).hide()这不是我想的
hide()
。我指的是底部的一个,在AJAX代码之后。这完全是同一个元素。哎呀,很抱歉,非常抱歉:)+1用一剂澄清剂更新了答案;)
div.column > div.contato-pedidooracao > div.message
{
    display:none;
}
.sending, .sendMessage
{
    text-align:center;
}