2012-03-23 5 views
3

SharePointサイトにaspxページがあります。これにはタグが含まれています。何らかの理由で、ページ上のすべてのボタンがクリックされたときにページをリロードします。属性(ID、クラスなど)や関数を持たないボタンでも、クリックするとページがリロードされます。この問題を解決するにはどうすればよいですか?私はリロード機能を呼び出さないので、デバッガで何が起こっているのかわからないので、どこにブレークポイントを置くべきか分かりません。SharePoint <button>要素は、ページの不要なリロードを実行します。

ご協力いただきありがとうございます。本当にありがとうございます。

+0

どのようにボタンをページに配置しましたか?彼らは 'runat =" server "'を持っているのでしょうか、それとも ' naivists

+0

ボタン自体は(問題の原因ではないことを確認するために私のコードからすべてを削除しましたが、私のボタンは タグ – user1226409

答えて

0

最初にdoPostbackという関数を検索し、エントリポイントにブレークポイントを設定してボタンをクリックします。このブレークポイントにヒットした場合、ボタンを生成するコントロールの自動ポストバックがオンになっている可能性があります。しかし、そのブレークポイントをトリガする場合は、スタックトレースを調べて、そこにどのように到達したのか把握できるはずです。

これでうまくいかない場合は、ブラウザのF12ツールを使用してHTMLセクションから始め、「クリック」という単語を検索します(Ctrl-F)。その後、スクリプトタブに移動し、各JavaScriptファイルについて同じ操作を行います。すべてのボタンが動作を示す場合、クリックイベントが登録されている可能性が最も高いです。おそらくこの$( 'button')のように見えるjQueryでは、ページ上のすべてのボタンに一致し、クリックハンドラを登録します。

見つからない場合は、http://startermasterpages.codeplex.com/からマスターページの1つをダウンロードしてアクセスし、一時的にマスターページをこれらのいずれかに置き換えてください。あなたのページに最初にロードされているスクリプトのスクリーンショットを撮ってください。その後、不要な動作が復帰するまで、一度に1つずつスターターマスターページに追加してください。次に、そのスクリプト内のすべての関数入力ポイントにブレークポイントを設定し、ボタンをクリックしてどこに着陸するかを確認します。

+0

アドバイスをいただき、ありがとうございます。どこから始めたらいいか分かりませんでしたが、少なくとも正しい方向に私を連れてきます。 JavaScriptファイルで1度に1つずつ問題の根本を見つけ出している)、問題が何らかのSharePointコードの奇妙なものから来ているようだが、何が原因であるか把握しようとしている – user1226409

+0

Google Chromeのデバッガのイベントリスナー'click'イベントにブレークポイントを配置すると、この機能がSharePoint JavaScripの内部で停止しましたtファイル。 .jsファイルの名前は非常に複雑ですが、ファイルの先頭のコメントはMicrosoftAjax.jsなので、実際にはそのように見えます。ファイルには3つの長い行のコードしかありません(関数はすべて1つの長い行にあり、デバッグ方法はわかりません)。呼び出しスタックにはMouseEventだけが表示されます。 – user1226409

8

ここで問題は<ボタン>タグです。デフォルトの動作は、別途宣言されていない限り、送信ボタンとして動作することです。

<ボタン>のタグを保持するには、button要素にtype = 'button'を追加します。私はリロードを防ぐと思います。

または入力>タグのtype = 'button'タグを使用してください。そうすればリロードも起こらなくなります。

また、onclickイベントを持つ他のhtml要素も機能します。

+0

これは@Joseyさんに働きました。ありがとうございました –

+0

これで問題が解決したら、私の回答に答えを記入してください。 – Josey

+0

こんにちは@ジョーズ、残念ながら私は答えをした人ではない、または私はこれを行うのに十分な特権を持っていない –

関連する問題