回答:
多くの場合、などのイベントハンドラーでonsubmit
falseを返すことは、実際に発生しないようにイベントに通知する方法です。したがって、onsubmit
この場合、これはフォームが送信されないことを意味します。
event.preventDefault()
この機能を使用する方がよいでしょう。falseを返すことは非推奨であり、常に機能するとは限りません。
return false
方法である、これは何も変更していますか?
私はあなたがしばしば「リターンfalse」を入れなければならないという事実を言及していると思います。イベントハンドラ内のステートメント、つまり
<a href="#" onclick="doSomeFunction(); return false;">...
「return false;」この場合、href = "#"で示されるように、ブラウザが現在の場所にジャンプするのを停止します。代わりに、doSomeFunction()のみが実行されます。アンカータグにイベントを追加したいが、クリックするたびにブラウザが各アンカーにジャンプしたくない場合に便利です。
イベントの伝播を停止するために使用されます。クリックイベントハンドラーを備えた2つの要素がある場合(たとえば)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
内部要素(element2)をクリックすると、1と2の両方の要素でクリックイベントがトリガーされます。これは「イベントバブリング」と呼ばれます。element2でのみイベントを処理する場合、イベントハンドラーはfalseを返してイベントの伝播を停止する必要があります。
もう1つの例は、リンクonclickハンドラーです。リンクフォームの機能を停止する場合。onclickハンドラーを追加してfalseを返すことができます。イベントが既定のハンドラーに伝達されないようにします。
false
イベントハンドラーから戻ると、イベントに関連付けられたデフォルトのアクションができなくなります。呼び出しevent.preventDefault()
または設定event.returnValue = false
(IE)を介してこれを行うこともできます。イベントのバブリングを停止するには、電話event.stopPropagation()
または設定event.cancelBubble = true
(IE)を行う必要があります
Er ...ブール関数で「真ではない」ことを示すのはどうですか?
「js、「return false」を使用する場合」を検索した後もこのページにアクセスしました。他の検索結果の中には、Chris CoyierのCSS-Tricksサイトで、はるかに便利でわかりやすいページがありました。「return false;」の違いです。および 'e.preventDefault();'
彼の記事の要点は次のとおりです。
function(){falseを返します。}
//等しい
function(e){e.preventDefault(); e.stopPropagation(); }
ただし、記事全体を読むことをお勧めします。
更新: return falseを使用するメリットを主張した後。e.preventDefault();の代替として。&e.stopPropagation(); この記事で概説されているように、私の同僚の1人がfalseを返すとコールバックの実行も停止することを指摘しました:jQueryイベント:Stop(Mis)Using Return False。
function() { return false; }
IS EQUAL TO function(e) { e.preventDefault(); e.stopPropagation(); }
ですが、純粋なjsでは同じではなく、 実際にfunction() { return false; }
EQUAL TO function(e) { e.preventDefault(); }
です。それはしません伝播を停止します。
関数でreturnステートメントが呼び出されると、この関数の実行が停止します。指定した場合、指定した値が関数の呼び出し元に返されます。式を省略すると、代わりにundefinedが返されます。
詳細については、MDNのドキュメントページをご覧くださいreturn
。
(何らかのテストによって)機能が低下したり、機能を停止したりする場合にのみ、falseを返します。例:end "onsubmit"でreturn falseを使用します。
また、https://www.w3schools.com/jsref/event_preventdefault.aspを読むためのこの短くて興味深いリンク
定義と使用法
preventDefault()メソッドは、キャンセル可能な場合、イベントをキャンセルします。つまり、イベントに属するデフォルトのアクションは発生しません。
たとえば、次のような場合に役立ちます。
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
注:すべてのイベントがキャンセル可能であるとは限りません。イベントがキャンセル可能かどうかを確認するには、cancellableプロパティを使用します。
注:preventDefault()メソッドは、DOMを介したイベントのそれ以上の伝播を妨げません。これを処理するには、stopPropagation()メソッドを使用します。