【问题标题】:JavaScript Confirm on ASP.Net Button ControlASP.Net 按钮控件上的 JavaScript 确认
【发布时间】:2011-10-25 08:15:38
【问题描述】:

我正在开发一个 ASP.Net C# 应用程序,我想创建一个按钮控件,当用户单击按钮时,会弹出一个 JavaScript 确认弹出窗口,然后从用户那里获取布尔值(是/否)以执行进一步的操作在按钮的 onClick 事件中。

我目前的做法是在按钮中添加 OnClientClick 和 OnClick 事件,其中 OnClientClick 触发 JavaScript 函数,并且 (Yes/No) 值存储到 HiddenField 控件中以在 OnClick 事件期间使用。

类似于以下代码片段:

function CreatePopup(){
            var value = confirm("Do you confirm?");
            var hdn1 = document.getElementById('hdn1');
            hdn1.Value = value;
        }

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" OnClientClick="CreatePopup()"/>
<asp:HiddenField ID="hdn1" runat="server" />

有没有更好的方法来做到这一点?提前谢谢你。

【问题讨论】:

  • 即使用户说“不”,您是否需要启动服务器事件?
  • 是的,这是要求,请参阅我的回答的评论!

标签: c# javascript asp.net popup


【解决方案1】:

更改您的 CreatePopup() 函数以返回布尔值:

function CreatePopup()
{
    return confirm("Do you confirm?");
}

然后确保您从按钮中的OnClientClick() 返回:

&lt;asp:Button ... OnClientClick="return CreatePopup();" /&gt;

使用该方法,OnClick() 方法只会在 OnClientClick() 方法返回 true 时触发。

【讨论】:

  • 感谢您的评论,我需要一直触发 OnClick() 事件,因此上述解决方案不适用于我的情况:)
  • 为什么不只为用户提供两个 ASP 按钮,而不是将他们的决定推迟到 JS 确认?然后,您可以将是/否特定代码放入处理程序中,并为其余部分调用通用方法。如果您的解决方案有效并且您对此感到满意,我认为没有理由更改它!
【解决方案2】:

为什么要将 JavaScript 确认的值存储在隐藏字段中?当确认值为 'no' 时,只需在您的 JavaScript 函数中返回 false ,以防止表单提交。当 cnfirm 值为 yes 时,返回 true 以允许提交表单。在 button_click 方法后面的代码中,您不必检查 JavaScript 确认中发生了什么,因为如果用户拒绝,则永远不会提交表单。

【讨论】:

  • 每次用户点击按钮时我都想要是/否值,这意味着我总是希望 OnClick() 事件触发并需要是/否值,这就是我将其存储在隐藏字段中的原因跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 2010-11-06
  • 2013-02-04
相关资源
最近更新 更多