これは他のいくつかと同じような複製ですが、この場合event.preventDefault()
を正しく使用していると思います。
コードを表示できるJSFiddleは次のとおりです。 http://jsfiddle.net/SeEw2/2/
基本的に、[送信]ボタンをクリックします。
Chromeの場合:何も起こらない-正しい応答。
Firefoxの場合:ページがリロードされます。
では、ChromeではなくFirefoxでページがリロードされるのはなぜですか?私はそれをFirebuggingしており、どちらにもエラーは発生しません...
コード内の変数event
は初期化されていません。
抽出:
$('#ajaxsearch').click(function(event) {
// Stop the Search input reloading the page by preventing its default action
event.preventDefault();
あ、過去にも同じような問題があった。 event.preventDefault()ではなく、イベントを次の場所に渡してみてください。
function ie8SafePreventEvent(e){
if(e.preventDefault){ e.preventDefault()}
else{e.stop()};
e.returnValue = false;
e.stopPropagation();
}
IEと表示されていることは知っていますが、=]以来問題が発生したことはありません。
私のコードは少し違うため、この方法で解決しました。これは他の人に役立つかもしれません。私の初期コードはこのように見えました。
<form id="enrollstudentform" onsubmit="return enrollStudents()">
...
</form>
私のjs関数は次のように見えました
function enrollStudents() {
// Stop Form.
event.preventDefault();
// Other code
}
関数呼び出しでパラメーターイベントを渡し、functionで受け取る必要がありました。
<form id="enrollstudentform" onsubmit="return enrollStudents(event)">
...
</form>
jsコード:
function enrollStudents(event) {
// Stop Form.
event.preventDefault();
// Other code
}
役に立てば幸いです。
function(event)
のようなイベントオブジェクトを渡さないからですが、私の質問は、type="button"
とonclickは値を渡しますか?本質的に、あなたはこのプロセス全体で何をしているのか。
送信ボタンのクリックイベントを探す代わりに、 $(form).submit ハンドラーを使用してみませんか?
ハンドラーの最後に「falseを返す」限り、ページはリロードされません。