gpt4 book ai didi

jquery - 在 PostBack (ASP.NET) 上运行 jQuery 函数

转载 作者:行者123 更新时间:2023-12-03 22:32:20 25 4
gpt4 key购买 nike

我有一个最初通过 jQuery 隐藏的表单,单击按钮后会出现两个单选按钮(最初也通过 jQuery 隐藏)。单击一个单选按钮后,用户将被重定向到另一页面(这很好用)。单击另一个单选按钮后,“表单”将通过 jQuery 再次可见。

当“表单”中的字段在提交时在服务器端进行验证,并且页面重新加载时验证错误消息可见,但“表单”现在被隐藏(根据下面的初始 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);
}

最佳答案

这可能听起来相当烦人,但要实现这一点

我会使用隐藏值假设打开表单时将隐藏值更新为 1,

页面 HTML

input type="hidden" id="hiddenFormOpen" value="1" runat="server"

C# 代码隐藏

if (IsPostBack)
ClientScriptManager.RegisterClientScriptBlock(this.GetType, "myFunction",
"openForm("+hiddenFormOpen+")", true);

Javascript函数

function openForm (val)
{
if (val ==1)
{
Update form visibility here
}
}

第二个选项是避免进行服务器端回发,并使用 JQuery 进行完全基于客户端的回发,从而消除回发

关于jquery - 在 PostBack (ASP.NET) 上运行 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com