【问题标题】:JavaScript confirm with ASP.NETJavaScript 与 ASP.NET 确认
【发布时间】:2011-09-19 07:48:15
【问题描述】:

我在 ASP.NET 程序中使用 JavaScript 确认,确认窗口在我需要时工作,但是我不确定如何检索用户是单击“确定”还是“取消”。

这是在网站主:

            <script type="text/javascript">

                    var confirmMsg = document.getElementById('MainContent_confirmMessageHidden');

                    if (confirmMsg != null) confirm(confirmMsg.value);

            </script>

这是在 aspx.cs 文件中:

    private void Confirm(string msg)
    {
        //Response.Write("<script language = 'javascript'>window.alert('" + msg + "')</script>");
        confirmMessageHidden.Value = msg;
        confirmMessageHidden.Visible = true;


    }

如何检索用户的选择?

【问题讨论】:

    标签: javascript asp.net visual-studio-2010 confirm


    【解决方案1】:

    您需要使用javascript确认函数的返回值。例如,

    ...
    
    if (confirmMsg != null) {
      var answer = confirm(confirmMsg.value);
      if (answer) {
        alert('OK Clicked');
      }
      else {
        alert('Cancel Clicked');
      }
    }
    ...
    

    根据您需要的功能选择适当的操作而不是警报。

    编辑:

    使用确认阻止导航的示例代码

    <script type="text/javascript">
        function doConfirm() {
           var confirmMsg = document.getElementById('MainContent_confirmMessageHidden');
           if (confirmMsg != null) {
              return confirm(confirmMsg.value);
           }
           return true;
        }
    </script>
    
    <a href="link to some other page" onclick="return DoConfirm();" />
    
    <input type="sumbit" value="Click Me" onclick="return DoConfirm();" />
    

    【讨论】:

    • 好的,这行得通,如果单击“确定”,我怎么能告诉它继续? (继续前往确认前页面指向的位置)
    • @Karl,如果您的脚本在提交按钮上被调用,那么您需要在 click 事件处理程序上返回 true(确认时)以继续并返回 false 以不执行任何操作。这同样适用于超链接(锚元素)。查看我的编辑。
    • 当我尝试这样做时,我在站点管理员中创建了一个函数,但它根本不做确认警报
    • 但问题是这不是一个普通按钮,它是一个自动生成的选择按钮,所以我不确定如何访问它的 onClick
    • @Karl,选择按钮是什么意思?您的意思是自动回发的下拉菜单(onchange 将是正确的事件处理程序)。
    【解决方案2】:

    您可以使用基于确认选择的条件操作:

    比如

    if (confirm(confirmMsg.value))
    {
         document.location('<your_process_page_url.aspx>?confirm=1');
    }
    else
    {
         document.location('<your_process_page_url.aspx>?confirm=0');
    }
    

    然后在处理页面中您可以检索选择

    <%
     var choose = Request.QueryString["confirm"];
    %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      相关资源
      最近更新 更多