【问题标题】:Execute different codes on ok and cancel of confirm message在 ok 上执行不同的代码并取消确认消息
【发布时间】:2013-11-21 05:40:09
【问题描述】:

我有一个文本框,我想在 text_changed 事件上创建一个确认消息,并在 ok 上执行不同的代码并在 text_changed 事件下的代码中取消

<asp:TextBox ID="TextBox1" runat="server"  ontextchanged="TextBox1_TextChanged"></asp:TextBox>

【问题讨论】:

  • 问题出在哪里?
  • 没问题,我知道隐藏按钮是可行的,但我不想使用按钮

标签: c# javascript asp.net .net confirm


【解决方案1】:

window.confirm 返回一个布尔值,您可以在按钮中添加onclick="trigger_confirmation"

var trigger_confirmation = function(){
    if(window.confirm("Are you sure blah blah blah?")){
        // user confirmed
    } else {
        // user declined
    }
}

【讨论】:

  • 第一件事。没有按钮,第二如何在后面的代码中使用它
  • 您可以只使用文本框的onchange 属性(onchange="trigger_confirmation")。事实上,它实际上看起来你已经有一个ontextchanged 属性......
  • 是的,我有 ontextChanged,在后面的代码中,我在那个事件下做了一些编码,我想在 ontextchanged 事件上有一个确认消息,并在 yes 下执行一些代码,在 No 下执行一些代码在 ontextChanged 事件下确认
【解决方案2】:

要实现您的功能,您必须执行以下操作

使文本框的 AutoPostBack="True"。

添加一个隐藏文件并在aspx页面中添加java脚本,如下代码示例。

注意:java脚本块必须在你隐藏字段和文本框控件之后。

<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" 
                ontextchanged="TextBox1_TextChanged" ></asp:TextBox>

<script type="text/javascript">

                var textChange = document.getElementById('<%= TextBox1.ClientID %>').getAttribute("onchange");

                document.getElementById('<%= TextBox1.ClientID %>').setAttribute("onchange", "JustConfirm();");

                function JustConfirm() {
                    var IsConfirm = confirm('Confirm event?');
                    var hdnctrl = document.getElementById('<%= HiddenField1.ClientID %>');
                    hdnctrl.value = IsConfirm ? 'yes' : 'no';
                    eval(textChange);
                }
</script>

现在在服务器端进行如下代码检查

protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            if (HiddenField1.Value == "yes")
            {
                // Any c# code for confirmation
            }
            else
            {
                // Any c# code for not confirmation
            }
        }

【讨论】:

    【解决方案3】:

    在您的 TextBox1_TextChanged 块中尝试此代码:

     ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script>if(window.confirm('Press ok to continue?')){// on ok clicked  }</script>");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多