我已针对此问题遵循了几种解决方案建议,但没有任何效果正常。我期望的结果是在成功验证返回 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"/>
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"/>
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/