3

これは機能せず、その理由がわかりません.W3schoolsでそのコードを試してみましたが、問題は参照か何かにあると思います.ASP.NETは初めてです.

ASPコード(マスターページ)

<script src="./Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function () {
        $("#bt_insertar").click(function () {
            alert("Handler for .click() called.");
        });
    });
</script>

<asp:ContentPlaceHolder id="head" runat="server"></asp:ContentPlaceHolder>

インデックス.aspx

<td class="style4">
    <asp:Button ID="bt_insertar" runat="server" Text="Insertar" Width="71px" 
    onclick="bt_insertar_Click" style="height: 26px" />
</td>
4

3 に答える 3

5

デフォルトでは、IDあなたが与えるrunat="server"コントロールはidDOM 要素に行き着くものではありません。ASP.Net が生成する ID はClientID、サーバー側のコントロール オブジェクトのプロパティから取得できます。たとえば、次のように変更します。

$("#bt_insertar").click(...

$("#<%= bt_insertar.ClientID%>").click(...

...そのコードが ASP.Net が解析するページにある場合 (外部の JavaScript ファイルではなく)。

ClientIDModeASP.Net 4 では、プロパティを介してこの動作を制御できます。たとえば、Staticモード ( control.ClientIDMode = CLientIDMode.Static;)を使用するIDと、実際にはそのまま渡されます。ただし、 のデフォルト値ClientIDModePredictableであり、使用する を変更しIDます。

于 2013-07-13T17:16:17.163 に答える
1

jquery 関数を Asp.net サーバー コントロールにバインドするには、この方法でコードを記述する必要があります。

<script type="text/javascript">

  $(document).ready(function () {
      $('#<%= bt_insertar.ClientID %>').click(function () {
          alert("Handler for .click() called.");
      });


  });
于 2013-07-13T17:43:22.553 に答える
0

いくつかのポイント:

  1. JQuery の include ステートメントでは、src はsrc="../Scripts/jquery-1.4.1.js"代わりにsrc="./Scripts/jquery-1.4.1.js"
  2. クリックイベントをイベントにバインドする必要はなく、document.ready代わりにイベントに含めることができOnClientClick="bt_insertar_Click();"ますasp:Button

そして、あなたはあなたを定義することができますfunction bt_insertar_Click()

    <script type="text/javascript">

    function bt_insertar_Click() {
       alert("Handler for .click() called.");
    }
    </script>

Web ページに個別の .js ファイルを使用することをお勧めします。これにより、関連するすべての js 関数をこの js ファイルに移動し、jquery ファイルで行ったように含めることができます。

于 2013-07-13T18:32:00.427 に答える