c# - 即使从 OnClientClick 返回 false 后也会触发回发

标签 c# javascript jquery asp.net

我需要在 Jquery 函数返回 false 后停止 Button1_Click 触发。这是我的代码...

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <script type="text/javascript" src="http://code.jquery.com/Javascript/jquery-1.4.2.min.js"></script>
    <script src="Scripts/a.js" type="text/javascript"></script>
    <script runat="server">

        protected void Button1_Click(object sender, EventArgs e)
        {

        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return x();"  OnClick="Button1_Click" />
            OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>

js文件

function x() {

    alert('');

    return false;
}

这是我生成的 HTML 文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1">
    <script type="text/javascript" src="http://code.jquery.com/Javascript/jquery-1.4.2.min.js"></script>
    <script src="Scripts/a.js" type="text/javascript"></script>
    <title>

</title></head>
<body>
    <form method="post" action="Default.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExNTM0OTE4ODNkZI8CSkltDp/afauc6DGl2D8JvNnVI1ffgzykF0L2alVM" />
</div>

<div class="aspNetHidden">

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAOSROoMi8eHXeBzZ77oKwMrESCFkFW/RuhzY1oLb/NUVM34O/GfAV4V4n0wgFZHr3eJjGQabRwzK4TIMzE2tX2gN9468Yg/u6i/oj/9EvNo1w==" />
</div>
    <div>
        <input name="TextBox1" type="text" id="TextBox1" />
        <input type="submit" name="Button1" value="Button" onclick="return x();" id="Button1" />
    </div>
    </form>
</body>
</html>

我也尝试过类似的链接:

Why doesn't returning false from OnClientClick cancel the postback

在这种情况下,又一个点击事件的处理程序是通过 jquery 注册的。我认为这不是我的情况

ASP.NET OnClientClick="return false;" doesn't work

不应该有一个返回true的点击事件处理程序(通过jquery注册)。这是什么意思?这是否意味着我需要删除onClick函数...我不想这样做

我还尝试了其他建议的代码:

<asp:Button ID="Button1" runat="server" Text="Button"  OnClientClick="if (!x()) return     
false;"  OnClick="Button1_Click" /> 

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="javascript:return        
x();"OnClick="Button1_Click" />  

他们也不工作

请推荐

最佳答案

这对我有用......
.aspx 页面

<asp:Button id="btn" runat="server" Text="Button" onclientclick="if (!x()) { return false; }" onclick="btn_Click" />
<script type="text/javascript">
   function x() {
      return false;
   }
</script> 

Reference Help

<小时/>

从外部 javascript 文件工作代码更新
external.js

function x() {
    var result = confirm("Sure");
    if (result)
        return true;
    else
        return false;
}

.aspx 页面

<form id="form1" runat="server">
<asp:Button id="btn" runat="server" Text="Button" onclientclick="if (!x()) { return false; }" onclick="btn_Click" />
</form>
<script src="external.js" type="text/javascript"></script>

希望有帮助..!!

关于c# - 即使从 OnClientClick 返回 false 后也会触发回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402857/

相关文章:

javascript - JS : Uncaught TypeError: Property '$' of object [object Object] is not a function

c# - 拒绝基于对象数据的拖放?

C#:字符串 -> MD5 -> 十六进制

c# - 如何从 Word 文档中获取主题和标题(无需打开)?

javascript - 如何删除前第二节课?

javascript - 从 Google 的 CDN 提供 jQuery UI 还是作为本地副本?

javascript - jquery .remove 使用变量作为选择器

c# - 我在本地主机上的 ASP.NET Web 服务超时太快

javascript - 嵌套复选框 : Checked/Unchecked children with parent check

php - 选中所有/取消选中循环语句中的所有复选框