2012-04-25 12 views
-2

jQueryがトリガされるたびにエラー500 Internal Server Errorが返されます。jQuery文を実行しているときにjQueryが "500 Internal Server Error"を取得しています

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<script src="../meta/js/jquery-1.7.2.js"></script> 
<script> 

    $(document).ready(function() { 
     $('#form1').submit(function(e){ 
      e.preventDefault(); 
      alert('I clicked it'); 
     }); 
    }); 

</script> 
</head> 
<body> 

<form name="form1" method="post"> 
    <button id="button">grab user data</button> 
    <select></select> 
</form> 

</body> 
</html> 
+1

jQueryを含めていますか?私はそれがどこにでも追加されて表示されません... –

+3

jQueryは、クライアント上で実行されます。 500はサーバー上で生成されたHTTPエラーコードです。この質問は意味をなさない。 – recursive

+0

あなたのフォームでアクションが空白なのはなぜですか?あなたのページが/あなたの投稿を処理していない/あなたのサーバーがこの時点であなたの500のエラーをスローする可能性があります/に投稿しようとする可能性があります。 –

答えて

0

あなたがこの仕事をする欲しいものを達成するために:このよう

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
    $(document).ready(function() { 
     $('#myButton').on('click',function(){ 
      alert("i clicked it"); 
      }); 
    }); 
</script> 
</head> 
<body> 
    <button id="myButton">Click Me!</button> 
</body> 
</html> 

$(document).readyがあなたのページがレンダリングされた直後に、あなたのコードを実行するために使用され、その後、$('myButton')は、任意の要素を取得しますidが "myButton"の場合、 "on"メソッドを使用して任意のイベントをアタッチします。この場合は、 "click"イベントを選択する必要があります。次に、コードを配置する匿名関数を与える必要がありますあなたはその行動を実行したいと思います。

+0

現時点ではサーバ側で何も起こっていません。実行されるすべてのコードは質問に含まれていました。私は、私が前に移動する前に文法が正しいかどうかを調べるためにテストしていました。私はjQueryを初めて使用しており、私が何をしているかわからない。 –

+0

OKですので、.NETを使用していませんか?あなたが何を達成したいかを説明すると、それは役に立ちます。 –

+0

jQueryを使用して、ボタンがクリックされたときに警告を表示しようとしています。これは簡単な目標ですが、30分前にjQueryを使用し始めました。 –

3

私はつもりだが、そのためにこの変数のを推測:

<%=button.ClientID %> 

エラーを投げるだろう、何を意味するだろう何も(図示)はありません。

「jQueryがトリガーされた」ということを明確にすることはできますか?それは「クリック」の意味ですか? それとも、このページをロードすることで(私は後を想定し)

+1

@BrookJulias - 分かりやすくするために、 '500 internal server error'というのは一般的には、クライアントエラーではなく、サーバーエラーがあることを意味します。つまり、javascript/jQueryには関係しません。 –

+0

@ Jakub - ページが読み込まれたときではなく、ボタンがクリックされたときを指しています。 –

+0

@ Keven B - エラーがコードによって引き起こされていない場合、この問題の原因は何ですか?ボタンがクリックされ、コードが実行されるまでエラーは発生していません。 –

1

私はそれがこの行でエラーを与えていることを推測する:

$('#<%=button.ClientID %>') 

ハードコードの代わりに値とそれをテスト:

$('#buttonID') 
+0

'$( '#<%= button.ClientID%>')'を '$( '#button')'に変更しましたが、idをハードコーディングしてもエラーはそのままです。 –

+0

<%= button.ClientID%>呼び出しでは、タグを、ASP.NET Webformsがページのコンパイル時に生成する実際のコード化されたボタンIDで置き換えるため、ASP.NET Webformsアプリケーションで使用されているようです。 –

+0

@BrookJuliasそれは、サーバーの問題ではなく、jQuery .. jQueryを正しくインポートしていると言われています - それに含まれていないのですか?ボタンを削除して、代わりに警告を表示することもできます:$(document).ready(function(){alert( "hi");}); –

0

あなたのボタンはaction = ""のタグの中にあります。これは、 "/"へのポストバックを引き起こします。サーバーがこれを正しく処理しない場合、内部サーバーエラーが発生します。

アラートのみを表示する場合は、jQueryイベントオブジェクトでpreventDefaultを呼び出すことができます。以下のSe例:

$(document).ready(function() { 
    $('#<%=button.ClientID %>').click(function(e) { 
     e.preventDefault(); 
     alert("i clicked it"); 
    }); 
}); 

EDIT: は、私が上記の書いたものを忘れてください。それは動作しません。代わりに、フォームのsubmitイベントを使用します。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <script src="@{'/public/javascripts/jquery-1.6.4.min.js'}" type="text/javascript" charset="${_response_encoding}"></script> 
    <script> 
     $(document).ready(function() { 
      $('#form1').submit(function(e){ 
       e.preventDefault(); 
       alert('I clicked it'); 
      }); 
     }); 


    </script> 
</head> 
<body> 

<form id="form1" method="post" action=""> 
    <button id="button">grab user data</button> 
    <select></select> 
</form> 

</body> 
</html> 
-1

submitイベントを#form1に添付していますが、フォームにはIDのみがあり、名前はありません。フォームを名前、$("form[name='form1']")で選択するか、IDにid="form1"を指定する必要があります。

+0

なぜdownvote?私は実際に問題を発見した唯一の人です... – user2560528

関連する問題