2011-05-05 38 views
1

我如何获得确认框中按下的值?获取asp.net中的返回确认popbox值C#

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      if (confirm("Are you sure you want to proceed?")==true) 
       return true; 
      else 
       return false; 
     } 
    </script> 

C#

Button2.Attributes.Add("onclick", "return confirm_proceed();"); 
+0

我不确定问题是什么。 'confirm()'返回布尔值,所以你想从函数中返回“Ok”或“Cancel”? – 2011-05-05 02:47:11

+0

是的,所以我想在这里是当用户点击按钮2确认框将弹出,然后如果用户按下确定它会做按钮上的代码,否则它会忽略。 – Rye 2011-05-05 02:50:32

+0

您拥有的代码应该适用于该代码。有什么问题? – 2011-05-05 02:52:21

回答

1

试试这个,如果这是一个具有这种行为

Button2.Attributes.Add("onclick", "return confirm('Are you sure you want to proceed?')"); 

它内联,看起来简单,但如果你有这样的行为,多个控件,然后你原来的方法是易维护的唯一按钮。

而原始功能可以皱缩到

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      return confirm("Are you sure you want to proceed?"); 
     } 
</script> 
1

可以的confirm_proceed()值存储在一个asp:HiddenField

如下您可以修改你的脚本:

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      var hiddenField = document.getElementById('hiddenFieldId'); 

      if (confirm("Are you sure you want to proceed?")==true) 
      { 
       hiddenField.value = 'true'; 
       return true; 
      } 
      else 
      { 
       hiddenField.value = 'false'; 
       return false; 
      } 
     } 
</script> 

您现在可以访问第一您的Button2_Click事件中的隐藏字段值。

1

我只是面临着类似的问题,在实际的生产项目,我用以下解决它:

<asp:Button ID="btn1" runat="server" OnClick="Button1_Click" onClientClick="return confirm('Are you sure you want to proceed?')"/> 

这样的OnClientClick客户端事件因为onClick是一个服务器事件,所以如果用户点击OK,则Client事件从确认对话框返回True,因此执行此按钮后面的代码,另一方面,如果用户单击(Cancel或No),则它会返回错误,因此e后面的代码不会被修改(服务器事件被取消)

希望它能帮助你,因为我真的将它应用到我的项目中,并且没有任何问题。