HTMLページにはフォームの一部ではないボタンがあります。jquery ajax呼び出しによってページがリフレッシュされています
<input type='button' id='submitter' value='add'/>
私はそれをクリックハンドラを持っている:
$('#submitter').click(function(e) {
e.preventDefault();
e.stopPropagation();
var args={}
$.get('notexists.php', args, function() {alert('what?');}, 'json')
.error(function(){ alert('error'); });
return false;
}
さて、notexists.php
は存在しないので、クリックしてerror
を警告する必要があります。しかし何らかの理由で、私はボタンをクリックするとページがリフレッシュされます!
私は問題を特定しようとしたいくつかの実験:
- ハンドラ(ノーリターン偽、ノーデフォルトを防ぐため、無停止小道具、ノーjqueryのポストコール - 何も) - から取り出し、すべてのページがしましたクリックしても更新されません。ボタンは送信ボタンではなく、フォームには属しません。
- が削除されました。更新はありません。
- Firebugの「エラー時ブレーク」機能を有効にして、再度クリックしてみました。エラーはありません。
- 投稿URLが存在していて動作しています - まだ更新中です
- は$ .post呼び出しの後に "警告"が追加されました。実行が$ .postで中断するようですが、エラーはありません(実験3)。
- は、入力を同じIDの「div」に変更しました。同じ結果 - ページが更新されます。
誰でも手助けできますか?
PS:私はこのアプリの他の多くの部分で$ .postを使用しており、どこでも期待どおりに動作しています。
:
のような何かを行うことによって、あなたのセレクタをテストします。 –
実行が 'return false'ステートメントに達しないため、ページが最もよくリフレッシュされます。 try/catchブロックを置いて、catchでfalseを返してみてください。 – Pasman
@Pasman return falseはそれとは関係ありません。私のアプローチ1とアプローチ6を読んでください。 – jrharshath