0

JQueryコードを呼び出そうとしていButton1ますが、ボタンをクリックしても何も起こりません。ここに何かが欠けているのではないかと思います。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.js"/>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"/>
    <script type="text/javascript">
    $(document).ready(function(){
        $("#Button1").click(function () {
            alert("Hello");
         });
    });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" />    
    </div>
    </form>
</body>
</html>

ASPを使用したJqueryは初めてなので、助けてください

アップデート!レンダリングされた HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"/>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#B1").click(function () {
                alert("Hello");
            });
        });
    </script>
</head>
<body>

    <form name="form1" method="post" action="Default.aspx" id="form1" enctype="multipart/form-data">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExNzQxODc4NzgPZBYCAgMPFgIeB2VuY3R5cGUFE211bHRpcGFydC9mb3JtLWRhdGEWAgITDzwrAA0AZBgBBQlHcmlkVmlldzEPZ2S859s2HXOd3dMN1a3AFBBA24YTWA==" />
</div>

<div>

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBwLCh8GMCAKl1bK4CQK1qbSRCwKM54rGBgK7q7GGCALWlM+bAgLe7+btDB1tn9tYIpN00SJIvx3i3VxCTOP7" />
</div>


    <input type="submit" name="B1" value="Button" id="B1" />

    </form>

</body>
</html>
4

3 に答える 3

2

jquery を 2 回含めました。標準バージョンと縮小バージョンです。同じ js ライブラリを 2 回含める必要はありません。また、<script>タグは自己終了できません。

正しい方法は次のとおりです。

<head runat="server">
    <title></title>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $("#Button1").click(function () {
            alert("Hello");
        });
    });
    </script>
</head>

また、ASP.NET での名前マングリングを制御するため、サーバー側の構成を使用して ID が正しいことを確認することをお勧めします。

$("#<%= Button1.ClientID %>").click(function () {
    alert("Hello");
});

またはクラス セレクターを使用します。

于 2012-09-08T18:44:00.637 に答える
2

おそらくあなたのレンダリングされたIDはそうで<asp:Button />はありませんButton1が、次のようなものですctl00_Button1

代わりにこれを試してください

$(document).ready(function(){
    $("#<%=Button1.ClientID %>").click(function () {
        alert("Hello");
    });
});

また、jQuery を 2 回読み込んでいるように見えますが、そのうちの 1 つは帯域幅速度のために圧縮されています

この最初のものを取り出します

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

これを残して

<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
于 2012-09-08T18:45:57.287 に答える
0

ボタン要素にクラスを追加してみて、divコンテキストでこれを見つけることができます。

Javascript:

$(document).ready(function(){

   var $context = $('#containerForm').find('form'); 
   $context.find('.mybutton').bind('click', function (event) {
      alert("Hello");
   });
});

HTML:

<body>
    <div id="containerForm">
       <form id="form1" runat="server">
       <div runat="server">
           <asp:Button ID="Button1" runat="server" Text="Button" class="mybutton" />    
       </div>
       </form>
    </div>
</body>

編集:

または、このセレクターでボタン要素を検索します$context.find('input[name*="Button1"]')。コンテキストを使用すると、パフォーマンスが向上します。

編集II:

コードはうまく機能します(これを参照)。ファイル""が正常に読み込まれているかどうかを確認する必要があります。レベルによっては、またはプロジェクトのセットアップ時に ""を配置できますが、フォルダ""とScripts/jquery-1.4.1.min.js同じレベルにないパスに配置されている可能性があります。「」がある場合は注意が必要です。ScriptsScripts/jquery-1.4.1.min.js/MyProyect/Scripts/jquery-1.4.1.min.js

これを確認するには、「フィドラー」を使用して、httpステータスコード400を見つけることができます。

于 2012-09-08T19:58:16.923 に答える