ajax呼び出しが成功した後、確認メッセージを表示しようとしています。ユーザーがリンクをクリックして別のユーザーにメッセージを送信すると、ダイアログが開きます。彼らがメッセージを送信した後、私はフォームを非表示にし、「送信されたメッセージ」などの簡単なメッセージが表示されます。ただし、ユーザーがダイアログを閉じて再度開いた後、フォームは再表示されず、メッセージは引き続き表示されます。
これは、ポップアップダイアログとメッセージフォームです。
<a href="#MessageStudent" class="popUpLink">Message</a>
<div class="popUpDialog" id="messageStudentDialog">
<div id="messageStatus"></div>
<form class="sendMessageForm" id="studentForm" action="" method="POST">
<fieldset>
<input type="hidden" value="317" name="studentID">
<textarea rows="3" cols="35" name="message"></textarea>
<input type="submit" value="Send Message">
</fieldset>
</form>
</div>
これは、リンクとダイアログをクリックするためのjQueryハンドラーです。
function popUpDialogs()
{
$('.popUpLink').each(function()
{
if(!$.data(this, 'dialog'))
{
$divDialog = $(this).next('.popUpDialog');
$.data(this, 'dialog', $divDialog.dialog(
{
autoOpen: false,
modal: true,
title: $divDialog.attr('title')
}));
}
}).on('click',function()
{
$.data(this, 'dialog').dialog('open');
$('form',$divDialog).toggle(); //This is what I'm trying but doesn't work
return false;
});
}
これは私のAJAXフォームハンドラーです:
$('form.sendMessageForm', '.popUpDialog').on('submit', function()
{
event.preventDefault();
var form = $(this);
var popUpDialog = form.parent();
var data = new Array();
var data = form.serialize();
$.post('', { sendMessage : data}, function(response)
{
$(form).toggle();//This is what I'm trying but it doesn't work
$('div#messageStatus', popUpDialog).html("<p>Message Sent!</p>").hide().fadeIn(3000).animate({opacity: 1.0}, 3000) //<== wait 3 sec before fading out
.fadeOut('slow', function()
{
});
});
});
どんな助けでもいただければ幸いです!ありがとう!