我有一个最初通过jQuery隐藏的窗体,点击一个按钮出现两个单选按钮(最初也是通过jQuery隐藏)。点击一个单选按钮,用户被重定向到另一个页面(这可以正常工作)。点击另一个单选按钮“表单”通过jQuery再次可见。在PostBack上运行jQuery函数(ASP.NET)
当'表单'中的字段在提交时验证了服务器端,并且页面重新加载了可见的验证错误消息,但'表单'现在隐藏了(按照下面的初始jQuery) 。
如何使表单在回发中可见? (我已经尝试ASP面板& AJAX的UpdatePanel无济于事。)
**这是我的jQuery:**
// 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实现(每Moar的建议为),这是还没有工作,有什么想法? :(:
的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嗨。我将代码隐藏添加到page_load事件中,并将JavaScript放入一个像你说的那样的函数中,但它仍然不起作用。在查看您发布的代码后,查看 – Dan
@Dan上新添加的JavaScript我找不到标题为“openForms”的函数我错过了什么? – MoarCodePlz
对不起,我在inbetween尝试不同的东西,应该已经恢复,函数openforms只是IsPostBack函数的另一个名称,我有太多叫做IsPostBack的东西,它让我感到困惑(认为我有一个var,函数名称,然后立即在c#中调用它)。我很抱歉。我只是不确定语法以及如何告诉用JavaScript打开的元素。 – Dan