javascript - 在我的 ASP.NET Web 解决方案中,OnClientClick 在返回 true 时不会传递给 OnClick 代码

标签 javascript c# asp.net

我已针对此问题遵循了几种解决方案建议,但没有任何效果正常。我期望的结果是在成功验证返回 true 后执行 C# 代码隐藏方法之前触发 JavaScript 验证函数。 OnClick 应该跟在 javascript OnClientClick 操作之后。

我尝试过此线程的建议:

Executing OnClick code behind method after returning true from OnClientClick javascript function

以及此线程:

Executing OnClick code behind method after returning true from OnClientClick javascript function

这是我当前的布局:

<asp:Button ID="btnAdd" runat="server" AutoPostBack="true" OnClick="btnAdd_Click" OnClientClick="btnAdd_Click(this, event);" Text="Add" UseSubmitBehavior="false"/>&nbsp;



    function btnAdd_Click(sender, args) {
        if(confirm('Do you want to do a server trip?'))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

我也尝试过:

<asp:Button ID="btnAdd" runat="server" AutoPostBack="true" OnClick="btnAdd_Click" OnClientClick="if (!Confirm()) return false;" Text="Add" UseSubmitBehavior="false"/>&nbsp;

function Confirm() {
    return confirm("Are you sure?");
}

我看到的是 JavaScript 每次都会触发。调试 JS 证明它在我的解决方案中返回 true,因此 OnClick 应该会被命中。我在后面的代码上的点击事件中有一个断点,但它永远不会被击中。是否有网站设置或其他因素阻止了这种情况?

非常感谢您的帮助。提前致谢。

最佳答案

试试这个...你真的不需要那个 JS 函数。

<asp:Button ID="btnAdd" runat="server" OnClientClick="return window.confirm('Are you sure?');" Text="Add" OnClick="btnAdd_Clicked"/>


protected void btnAdd_Clicked(object sender, EventArgs eventArgs)
{
    string test = "12345";
}

如果您调试 btnAdd_Clicked 函数,您会看到它到达那里的第一行代码。

关于javascript - 在我的 ASP.NET Web 解决方案中,OnClientClick 在返回 true 时不会传递给 OnClick 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57222841/

相关文章:

c# - 在登录表单页面上加载 javascript/css?

c# - iOS-Unicode取消签名

javascript - 将单个对象加载到 sencha touch 中的数据存储中

javascript - Powerpoint 演示文稿中可编辑的 HTML、CSS 和 Javascript?

c# - 我应该如何确保处理可能是一次性的元素?

c# - 尝试连接远程服务器时 SSIS 执行失败

javascript - 不匹配协议(protocol)的最佳方法/解决方法 - http/https 之间的通信

javascript - 从溢出 :hidden elements 监听滚动事件

c# - 在 C# 中从 Internet 下载文件并即时写入的正确方法是什么?

css - ASP.NET CheckBoxList ListItem 没有换行