运行C#方法时jQuery重置

时间:2016-03-12 10:37:59

标签: javascript c# jquery asp.net

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

问题是,当我单击我的提交按钮时,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记住了我的小部件的当前设置,而不是将其回滚到初始设置。

1 个答案:

答案 0 :(得分:0)

当点击事件被称为页面回发时,jquery事件不会激活。你需要在JavaScript中分配一个部分回发处理程序。

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