【问题标题】:asp.net jquery button click prevent postbackasp.net jquery 按钮单击防止回发
【发布时间】:2013-02-07 16:14:27
【问题描述】:

我想要 asp:Button,当我点击它时,我不希望它做回发,而是在 .这是我的代码

    <script type="text/javascript">
        $(document).ready(function (e) {
            $('#<%=btn_comment_add.ClientID %>').click(function (e) {
                $('#comments').append('<div>asd</div>');
                return false;
            });
        });
    </script>

这是 asp.net 按钮

  <asp:Button ID="btn_comment_add" runat="server" Text="Gönder" CssClass="theme04" UseSubmitBehavior="false" />

我可以看到代码添加了 div,但它会回发,因此会被删除。我只看到了新的 div :)

请帮我修复它,这样它就不会回发。非常感谢大家

【问题讨论】:

  • 我也试过 e.preventDefault();但没用
  • 设置type="button" 不会阻止按钮成为提交按钮吗?我认为默认情况下它呈现为type="submit"

标签: jquery asp.net postback


【解决方案1】:

不要使用ASP Button,而是使用简单的HTML按钮并分配您希望运行的jquery函数,

<input type="button" name="btnname" onclick="MyJueryFunction()" />

把你的jquery写成

function  MyJueryFunction()
{
  $('#comments').append('<div>asd</div>');

 }

【讨论】:

  • 哟 dawg... 为什么在 click 事件处理程序中会有 click 事件处理程序?
  • 你已经掩盖了你不引人注目的 JavaScript! :)
  • 但是……不。这不是您编写 jQuery 的方式。您应该使用 jQuery 来设置您的点击事件。不要做“onclick=”。
  • @aquinas:如果我最初分配onclick 函数而不是在运行时分配,会有什么不同吗?如果是这样,请你帮我理解。
【解决方案2】:

如果您不希望它回发,那么为什么要有一个 asp.net 按钮?在任何情况下,您都可以这样做:

  <asp:Button ID="btn_comment_add" runat="server" Text="Gönder" CssClass="theme04" UseSubmitBehavior="false" 
OnClientClick="return false;" />

【讨论】:

  • 我还能用什么来代替按钮。我是新手
  • 只需执行 。如果你不需要它来回发,那么就没有理由让它成为 ASP.NET 服务器控件
  • 如果我使用 Jquery 从客户端显示弹出窗口怎么办?我只是不希望它回发
  • @aquinas 该按钮位于 GridView 内。如何使用可以从代码隐藏和前端访问而无需回发的标准 HTML 按钮?
  • 如果您需要能够从后端访问按钮的属性(例如,可见与否等),那么是的,您需要将其设为服务器控件。
【解决方案3】:

摆脱UseSubmitBehavior

当您将此设置为 false 时,ASP.NET 将添加一个客户端 onclick 事件,该事件将在您自己的 javascript 事件之前/之后触发,因此无论您在 click 事件中做什么,都可以尝试阻止它回帖,会的。

查看页面的源代码,你会看到类似的东西;

javascript:__doPostBack(&#39;btnID&#39;,&#39;&#39;)

在按钮上

【讨论】:

  • 但是我正在使用 btn_comment_add.clientid() 仍然无法正常工作
  • 你还在用btn_comment_add.clientid()是什么意思?只需从按钮中删除UseSubmitBehaviour 属性,不要更改任何其他内容。
  • İ 决定使用常规的 html 按钮来摆脱复杂性。非常感谢你
【解决方案4】:

有几种方法可以实现这一目标。以下是另一种方式

    $("#<%=ButtonClick.ClientID %>").bind('click', function (e) {
         e.preventDefault();
         //Do Your work 
    });

【讨论】:

    【解决方案5】:

    在这种情况下,ASP 按钮必须通过一些验证来调用函数 //ASP 按钮

    asp:Button ID="btnSave" runat="server" Text="Save" class="btn btn-success" OnClientClick="return Valid()" OnClick="btnSave_Click"

    函数有效() {

            if ($("#ctl00_ContentPlaceHolder1_ddlLocation").val() == 0) {
                alert("Please select Location");
                $("#ctl00_ContentPlaceHolder1_ddlLocation").focus();
                return false;
            }
    
            if ($("#ctl00_ContentPlaceHolder1_txtArea").val().length == 0) {
                alert("Please Type Area");
                $("ctl00_ContentPlaceHolder1_txtArea").focus();
                return false;
            }
            return true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2017-05-31
      • 2011-05-03
      相关资源
      最近更新 更多