【问题标题】:ASP.NET Button, OnClientClick not workingASP.NET 按钮,OnClientClick 不起作用
【发布时间】:2021-09-05 01:50:08
【问题描述】:

我的按钮同时声明了 OnClick 和 OnClientClick 事件。

我希望在回发发生之前完成一些特定的任务,但出于某种奇怪的原因 OnClientClick 从未被触发。我以前用过很多次,从来没有遇到过这个问题。

它有问题,我也尝试直接添加'return false'以防止服务器端处理但仍然发生回发。

我检查了我的表单是否在 UpdatePanel 中,但它不在。

<cms:CMSButton ID="btnOk" OnClientClick="clientClick()" OnClick="btnOK_Click" runat="server" ButtonStyle="Default"
                    EnableViewState="false"></cms:CMSButton>

$(document).ready(function () {

    function clientClick() {
        console.log("Clicked");
        document.getElementById("<%=spinner.ClientID  %>").style.display = "block";
        document.getElementById("<%= btnOk.ClientID%>").style.display = "none";
    }
});

我也尝试以这种方式触发事件,但没有运气,所以这里可能发生了其他事情:

$('#<%=btnOk.ClientID%>').click(function () {
        console.log('clicked');
    });

检查了控制台但没有发现任何js错误。

【问题讨论】:

  • 您不能将function clientClick() { 放入$(document).ready(function () { 中,从那里删除并重试。同样在您点击后立即回发,因此您可能看不到 console.log,除非您保留历史记录
  • 是的,但我至少应该看到它,直到页面完成重新加载。我也尝试直接从 OnClientClick 返回 false 以防止回发,但回发仍然发生。我删除了 document.ready 但没有更改。
  • 执行OnClientClick="clientClick();return false;"OnClientClick="return clientClick();" 然后在函数内返回false
  • 已经试过了,还是不行。

标签: javascript asp.net webforms


【解决方案1】:

正如其他人建议的那样 - 避免使用文档。像瘟疫一样做好准备。

现在不要把这个建议的规则当作全部或全部。简单的事情是当你需要使用 document.ready - 然后使用它,但是当你可以避免使用它时,不要突然使用它来连接事件代码 - 它真的很难遵循。

现在,您发布了您的标记 - 我不知道您是否遗漏了部分内容,但是当代码无法正常工作时,您想提供更多详细信息。

您的代码应如下所示:

<cms:CMSButton ID="btnOk" OnClientClick="clientClick()" OnClick="btnOK_Click"
   runat="server" ButtonStyle="Default"
EnableViewState="false"></cms:CMSButton>

  <script>
    function clientClick() {
       console.log("Clicked");
       document.getElementById("<%=spinner.ClientID  %>").style.display = "block";
       document.getElementById("<%= btnOk.ClientID%>").style.display = "none";
    }
 </script>

所以你有一个函数,你有一个 onclick,你有一个带有那个名字的 js 函数。不错,简单的代码方法在这里。是后面的代码,还是页面中的 js 代码?您编写一个函数,然后指定该函数。保持简单。

事实上,我经常建议您将 RIGHT 放在按钮下方,这样您就不必在页面中四处寻找标记中的例程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    相关资源
    最近更新 更多