为什么这个jquery按钮单击事件没有触发?

时间:2012-08-22 04:34:05

标签: jquery asp.net events

我有这个页面,这里是代码..

$(document).ready(function () {

    $('#<%= btnCompare.ClientID %>').click(function() {
        alert("Hey");
       // return false;
    });

});

,按钮是,

<asp:Button Text="Compare" ID="btnCompare" runat="server" OnClick="btnCompare_Click" />

但是警报没有出现?

编辑: 生成的html

  $(document).ready(function () {
        $('#ctl00_ContentPlaceHolder1_btnCompare').click(function() {
            alert("Hey");
           // return false;
        });
    });

<input type="submit" name="ctl00$ContentPlaceHolder1$btnCompare" value="Compare" id="ctl00_ContentPlaceHolder1_btnCompare" style="color:White;background-color:#6086AC;border-color:White;border-width:2px;border-style:Solid;font-family:Verdana;font-size:10pt;font-weight:bold;" />

编辑2 可能是因为我有一个这个文件的母版页,它也有一个document.ready处理程序,所以在页面加载时两者都被加载了?

3 个答案:

答案 0 :(得分:1)

您的点击处理程序不会阻止按钮点击后回发。要阻止发布表单,请使用OnClientClick按钮属性:

<asp:Button Text="Compare" ID="btnCompare" runat="server" OnClick="btnCompare_Click" OnClientClick="return foobar()" />

function foobar(){
    alert("Hey");
    return false;
}

答案 1 :(得分:0)

这宁愿是

 $(document).ready(function () {

$('#<%= btnCompare.ClientID %>').submit(function() {
    alert("Hey");
   // return false;
});

});

修改

替换它

<asp:Button Text="Compare" ID="btnCompare" runat="server" OnClick="btnCompare_Click" />

<asp:Button Text="Compare" ID="btnCompare" runat="server" />

答案 2 :(得分:0)

我有类似的问题。但是,该按钮是弹出控件的一部分,嵌入在UpdatePanel中。要修复它,我必须在脚本标记中使用以下内容:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(prm_endRequest);

function prm_EndRequest() {
   $(document).ready(function() {
      // your code here
   });
}