jQuery 在运行 C# 方法时重置

jQuery resets when C# method is run

本文关键字:方法 运行 jQuery      更新时间:2023-09-26

我有一个"时事通讯"小部件,当用户按下按钮时可以展开。展开的容器内是一个输入框和一个"提交"按钮。我的代码隐藏检查电子邮件是否有效,然后发送邮件(如果有效)。如果电子邮件无效,则会在标签中放置错误消息。

问题是当我单击提交按钮时,jQuery 函数会重置,容器不再展开。

$('.widget').click(function () {
    $('.widget').addClass('wdly');
    $('.widly').addClass('window');
});
$('.hide1').click(function () {
    $('.widget').removeClass('wdly');
    $('.widly').removeClass('window');
});
<div class="widget">
    <span class="mail" style="margin-left: 3px">Newsmail</span>
</div>
<div class="widly">
    <span class="hide1"></span>
    <asp:TextBox ID="txtEmail" runat="server" CssClass="form-control newsmail"></asp:TextBox>
    <asp:Label ID="emailRegEx" runat="server" Text="Label" style="position:absolute; margin-top: 50px; margin-left: 60px;" Visible="false"></asp:Label>
    <asp:Button ID="submit" runat="server" Text="Submit" CssClass="btn btn-lg btn-success submit" OnClick="submit_Click1" />            
</div>
protected void submit_Click1(object sender, EventArgs e)
{
    if (Regex.IsMatch(txtEmail.Text, @"'w+([-+.']'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*", RegexOptions.IgnoreCase))
    {
        // send email
    }
    else
    {
        emailRegEx.Visible = true;
        emailRegEx.Text = "Invalid E-mail format";
    }
}

我想我正在寻找的是某种部分加载,它使 DOM 记住我的小部件的当前设置,而不是将其回滚到初始设置。

当单击事件调用页面时回发,因此 jquery 事件不会触发。您需要在 JavaScript 中分配部分回发处理程序。

function functionname() {
   // do something
}
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(functionname);