【问题标题】:OnClientClick and OnClick relation not working on second hitOnClientClick 和 OnClick 关系在第二次点击时不起作用
【发布时间】:2015-03-27 17:15:29
【问题描述】:

晚上好!

我一直在尝试使用 OnClientClick 和 OnClick 进行验证过程。这意味着,我使用 OnClientClick 进行确认,如果确认,则继续使用 OnClick。 “不”总是好的,我们专注于“是”。第一次点击一切顺利,但第二次点击可以看到PostBack(这意味着“点击”有效),但后面的代码没有触发任何动作。

代码如下:

<script type="text/javascript" >
    function testExample(button) {
        var confirmed = confirm("Are you sure?");
        return confirmed;
    }
</script>

<asp:Button ID="btnButton" runat="server" OnClientClick="if(!testExample(this)) return false;" OnClick="btnClicked" Text="Button Test"/>

后面的代码什么都没做,只是检查它是否被触发:

protected void btnClicked(object sender, EventArgs e)
{
   return;
}

添加或删除UseSubmitBehavior="false" 没有任何作用,设置ClientIDMode="Static"AutoID 也是如此。

更改为OnClientClick="return testExample(this);" 也没有影响。如果我单独对其他按钮进行操作,它会发生相同的情况,它们都是第一次运行,第二次失败。我试图避免 CssClass 和 pageLoad() 关系。

你能帮我弄清楚我做错了什么或遗漏了什么吗?

编辑:这似乎每次发生回发事件时都会发生,即使在删除 OnClientClick 之后也是如此。此按钮不在任何占位符内。

【问题讨论】:

    标签: javascript jquery asp.net


    【解决方案1】:

    将您的 OnClientClick 事件更改为

    OnClientClick="return confirm('Are you sure?');"
    

    【讨论】:

    • 我之前试过了,还是不行。确认返回“true”或“false”,这与使用的函数具有相同的行为,因为页面确实刷新了,意味着一个postpack,意味着一个成功的点击。它失去了服务器端的 OnClick。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多