最初はjQueryで非表示になっているフォームがあり、ボタンをクリックすると2つのラジオボタンが表示されます(最初はjQuery経由で非表示になっています)。 1つのラジオボタンをクリックすると、ユーザーは別のページにリダイレクトされます(これは問題ありません)。他のラジオボタンをクリックすると、「フォーム」がjQueryを介して再び表示されます。PostBack(ASP.NET)でjQuery関数を実行
「フォーム」内のフィールドが送信時にサーバー側で検証され、検証エラーメッセージが表示された状態でページが再読み込みされますが、「フォーム」が非表示になりました(下の最初のjQueryに従って) 。
ポストバックでフォームを表示するにはどうすればよいですか? (私はすでに無駄にASPパネルに& AJAXのUpdatePanelを試してみました。)
**この私のjQueryのです:(Moarの提案どおり)**
// Reveal Radio Fields
$(".btn-leavecomment, .txt-leavecomment").toggle(function(){
$("#commenttype").stop().animate({ down: "+=300" }, 3000)
$("#commenttype").stop().slideDown("slow");
}, function(){
$("#commenttype").stop().animate({ down: "-=300" }, 1400)
$("#commenttype").stop().slideUp("slow");
});
// Reveal Form on-click of one radio field in particular
$(".reveal_ccform").toggle(function(){
$("#ccform_container").stop().animate({ down: "+=300" }, 4000)
$("#ccform_container").stop().slideDown("slow:4000");
}, function(){
$("#ccform_container").stop().animate({ down: "-=300" }, 4000)
$("#ccform_container").stop().slideUp("slow:4000");
});
新しく追加されたJavaScriptの実装は、これはまだありません作業、任意のアイデア? :(:
はJavaScript:
<script type="text/javascript">
$(document).ready() {
function isPostBack()
{
if (!document.getElementById('clientSideIsPostBack'))
{
return false;
if (document.getElementById('clientSideIsPostBack').value == 'Y')
return true;
}
// Reveal Comment Type
$(".btn-leavecomment, .txt-leavecomment").toggle(function() {
$("#commenttype").stop().animate({ down: "+=300" }, 3000)
$("#commenttype").stop().slideDown("slow");
}, function() {
$("#commenttype").stop().animate({ down: "-=300" }, 1400)
$("#commenttype").stop().slideUp("slow");
});
// Reveal Sign Guestbook Form
$(".reveal_ccform").toggle(function() {
$("#ccform_container").stop().animate({ down: "+=300" }, 4000)
$("#ccform_container").stop().slideDown("slow:4000");
}, function() {
$("#ccform_container").stop().animate({ down: "-=300" }, 4000)
$("#ccform_container").stop().slideUp("slow:4000");
});
// Hide 'Leave a Comment' button and 'Comment Type' div
$('.reveal_ccform').click(function() {
$(".btn-leavecomment").stop().fadeOut("slow:1500"),
$('#commenttype').slideUp("slow:8000");
});
}
}
</script>
のC#:
if (Page.IsPostBack)
{
Page.ClientScript.RegisterStartupScript(GetType(), "IsPostBack", script, true);
//Second part of code will run if is postback = true
ClientScriptManager cs = Page.ClientScript;
Type csType = this.GetType();
cs.RegisterClientScriptBlock(csType, "openForms", "$(document).ready(openForms);", true);
}
こんにちはMoarを排除完全にクライアントベースのいずれかを実行するためにjQueryのを使用することです。コードビハインドをpage_loadイベントに追加し、あなたが言ったようにJavaScriptを関数に入れましたが、それでも動作しません。 – Dan
@Dan上に新しく追加されたJavaScriptを投稿しました投稿したコードを見た後に "openForms"というタイトルの関数が見つかりませんでした。 – MoarCodePlz
はい、申し訳ありませんが、私はさまざまなことを試みていましたが、戻ってきたはずです。関数openformsはIsPostBack関数の別の名前です。IsPostBackという名前のオブジェクトが多すぎるので混乱していました(var、funct名C#で一度に呼び出す)。謝罪いたします。私はシンタックスと、JavaScriptで要素を開く方法についてはわかりません。 – Dan