【问题标题】:Button need to be click twice to fire an event按钮需要点击两次才能触发事件
【发布时间】:2011-08-17 09:12:32
【问题描述】:

我在 iFrame 中有一个简单的 ASP.NET 按钮,出于奇怪的原因,我必须单击它两次才能触发事件。

<asp:Button ID="btnSaveComment" runat="server" Text="Add Comment" 
            CssClass="button"
            OnClick="btnSaveComment_Click"
            ValidationGroup="add" />

protected void btnSaveComment_Click(object sender, EventArgs e)
{            
     AddComment();
}

【问题讨论】:

  • 可能不是因为您需要先在正确的 IFrame 中才能单击该按钮。
  • 类似问题,提供信息丰富的答案 [这里][1] [1]:stackoverflow.com/questions/297217/…
  • @AndroidHustle:仅供参考:在 cmets 中,您需要对超链接使用内联语法。您的示例代码应为:[HERE](http://stackoverflow.com/questions/297217/asp-net-c-need-to-press-a-button-twice-to-make-something-happen),如下所示:HERE
  • @awe 啊,太棒了!你的版本让它看起来好多了! =)
  • @AndroidHustle:很高兴为您提供帮助 :-)

标签: c# asp.net iframe


【解决方案1】:

我怀疑当您最初单击按钮上方的区域时,您将焦点放在iframe(即其中的页面)上,并且在第二次单击时鼠标可以与按钮交互。

另一方面,如果页面似乎正在回发,但在第二次点击之前实际上没有做任何事情,那么它很可能与页面生命周期有关,正如@AndroidHustle 的回答 cmets 中所建议的那样。

编辑:

要测试框架是否聚焦的理论,请尝试通过脚本使其聚焦。以下内容可能会有所帮助:

<script type="text/javascript">
    document.getElementById("iFrameId").focus();
</script>

【讨论】:

  • 也许你可以使用 Javascript/jQuery 将焦点放在iframe 上。
  • 我通过从 aspx 页面中删除按钮 OnClick 事件来修复并创建了一个 OnPageLoad 方法
【解决方案2】:

我遇到了同样的问题。以下是我的解决方法:

        $("#MainContent_Button1").hover(function (event) {
            $("#MainContent_Button1").click()
        });

现在只需单击 1 次,按钮就可以正常工作。

<asp:Button ID="Button1" runat="server" Text="Save Payment Plan" OnClick="Button1_Click" />

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2011-07-29
    • 2013-05-10
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多