1

私はこのページを持っています、ここにコードがあります。

$(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ハンドラーもあるため、ページの読み込み時に両方が読み込まれている可能性がありますか?

4

3 に答える 3

1

クリックハンドラーは、ボタンクリックのポストバックを妨げません。フォームの返送を防ぐには、OnClientClickボタンのプロパティを使用します。

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

function foobar(){
    alert("Hey");
    return false;
}
于 2012-08-22T05:05:18.177 に答える
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" />
于 2012-08-22T04:51:25.910 に答える
0

私も同様の問題を抱えていました。ただし、ボタンはポップアップコントロールの一部であり、に埋め込まれていましたUpdatePanel。これを修正するには、スクリプトタグで次を使用する必要がありました。

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

function prm_EndRequest() {
   $(document).ready(function() {
      // your code here
   });
}
于 2018-05-18T11:32:34.937 に答える