【问题标题】:Call javascript in between a button OnClick event in C#在 C# 中的按钮 OnClick 事件之间调用 javascript
【发布时间】:2014-11-21 21:00:58
【问题描述】:

我的网页上有一个带有 OnClick 事件的按钮。

<asp:TextBox ID="tbMailID" runat="server" Width="250px"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" />

C#代码:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    bool IsGmail = CheckMailId(tbMailID.Text);
    if(!IsGmail)
    {
        string strScript = "confirm('Mail id is not from gmail, do you still want to continue?');";
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", strScript, true);
    }
    SendMail(); 
}

页面接受文本框中的邮件 ID,并在提交时发送邮件。 但是,如果 mail-id 不是 gmail id(由 CheckMailId 验证),我想根据单击的是/否向用户显示他/她是否想要获取邮件的确认框。

但是在提交事件服务并发送邮件后,javascript 会被调用。 如果我添加一个 return SendMail() 将永远不会接到电话

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", strScript, true);
return;

这里有什么可能的解决方案?

注意:发布的代码是我真实用例的简化版本。 CheckMailId - 只是一个显示的名称,它调用许多其他功能并执行少量数据库进程。所以将它合并到 javascript 中,我想避免。

【问题讨论】:

    标签: javascript c#


    【解决方案1】:

    您可以在事件之前调用脚本,例如:-

                <script type="text/javascript">
        function Confirm() {
           var yourstring = document.getElementById('<%= tbMailID.ClientID %>').value;
           if (/@gmail\.com$/.test(yourstring)) {
                 return true;
                   }
                 else
                  {
            if (confirm("Mail id is not from gmail, do you still want to continue?") == true)
                return true;
            else
                return false;
        }
           }
    </script>
    

    强文本

           <asp:Button ID="btnSubmit" runat="server" OnClientClick="return Confirm();" OnClick="btnSubmit_Click" Text="Submit" />
    

    【讨论】:

    • 这不会调用服务器端CheckMailId()
    • 我已经编辑了我的答案...@Rhumborl
    • 实际上我发布的代码是我真实用例的简化版本。 CheckMailId - 只是一个显示的名称,它调用许多其他函数并执行少量数据库进程。虽然您的解决方案非常适合用于 suedo 案例。
    猜你喜欢
    • 2015-04-27
    • 2020-10-18
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多