0
最も簡単な例は、ユーザーが送信をクリックしたときに、メッセージが送信されていることを示すgifがあるdivを表示したい場合です。コマンドのhow() 'がjqueryでフォームを送信しても機能しません。
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();
});
HTML
<div class="content contato-pedidooracao">
@using (Html.BeginForm())
{
<p>Conte-nos seu pedido</p>
<div class="inline">
@Html.Label("name", "Nome:")
@Html.TextBox("name", "")
</div>
<div class="inline">
@Html.Label("phone", "Telefone:")
@Html.TextBox("phone", "", new { @class = "phone" })
@Html.TextBox("cel", "", new { @class = "phone" })
</div>
<div class="inline">
@Html.Label("email", "e-mail:")
@Html.TextBox("email", "", new { @class = "email" })
</div>
<div class="inline">
@Html.Label("message", "Mensagem:")
@Html.TextArea("message", "")
</div>
<div class="submit">
<input type="submit" value="Enviar" title="Enviar" />
</div>
}
<div class="message sending">
<p>Enviando mensagem</p>
<img src="@Href("~/Images/ajax-loader.gif")" alt="Enviando..." />
</div>
<div class="message sendMessage"></div>
</div>
それが関連するかどうかはわからない..しかし、CSSの一部:
div.column > div.contato-pedidooracao > div.message
{
display:none;
}
.sending, .sendMessage
{
text-align:center;
}
処理時間は平均5秒ですが、div.sending
はこの時間間隔に表示されません。
彼が見せようとしている要素は、彼が隠している要素の外にあるようですので、それは問題ではありません... – Trey
'$("。contato-pedidooroorao " (); 'これは私が考えている' hide() 'ではありません。私は、AJAXコードの後ろにあるものを指しています。これは全く同じ要素です。 – Phliplip
おっと、申し訳ありません:) +1 – Trey