asp.net jquery按钮单击阻止回发

时间:2013-02-07 16:14:27

标签: jquery asp.net postback

我想要asp:Button,当我点击它时,我不希望它做回发但是添加一个新的div。这是我的代码

    <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:)

请帮我解决它所以它不会回发。非常感谢你们

5 个答案:

答案 0 :(得分:5)

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

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

并将jquery写为

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

 }

答案 1 :(得分:3)

如果你不希望它回发,那为什么你有一个asp.net按钮?无论如何,你可以这样做:

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

答案 2 :(得分:2)

摆脱UseSubmitBehavior

如果将此设置为false,ASP.NET将添加一个客户端onclick事件,该事件将在您自己的javascript事件之前/之后触发,因此无论您在点击事件中执行什么操作都尝试停止从发回来,它会。

查看页面来源,您会看到类似的内容;

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

按钮

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

asp:按钮ID =&#34; btnSave&#34; RUNAT =&#34;服务器&#34;文本=&#34;保存&#34; class =&#34; btn btn-success&#34; OnClientClick =&#34;返回Valid()&#34;的OnClick =&#34; btnSave_Click&#34;

function Valid(){

        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;
    }