web-dev-qa-db-ja.com

JavaScript「onclick」イベント「return」キーワード機能

私は本当にJavaScriptが初めてで、returnキーワードにつまずいた。基本的に、これらの2つのステートメントの違いは何ですか?

<input type="checkbox" onclick="doAlert()" />

<input type="checkbox" onclick="return doAlert();" />

本質的に、両方が同じ結果を返し、関数を呼び出しましたが、それ以上ありますか?どんな助けも大歓迎です:)。ありがとう!

46
Shiroi98

関数からfalseを返すと、チェックの効果が中止されます。 htmlプロパティにハードコーディングされた関数のネイティブ(新しいローカル関数になったため)であるため、Wordの「return」なしでhtmlを記述すると、関数が実行され、戻り値が失われます。

function doAlert() {
   if(some_condition)
     return false;
   else
     return true;
}
function some_local_function() {
   doAlert();
}

関数 some_local_functionは値を返しませんが、doAlertは戻ります。

「return」を記述すると、次のような2番目の関数を記述したようになります。

function some_local_function() {
   return doAlert();
}

これにより、doAlertの戻り値が保持されます。 trueの場合-アクションが実行されます(チェックボックスがチェックされます)-そうでない場合-キャンセルされます。

ライブエクスパムはここで見ることができます: http://jsfiddle.net/RaBfM/1/

38
Y. Shoham

一部のhtml要素には、true/falseが返されたときに異なる動作をするJSイベントがあります。例えば:

<input type='submit' value='Click Me' onSubmit='ValidateForm();'>

...対...

<input type='submit' value='Click Me' onSubmit='return ValidateForm();'>

2番目のインスタンスでは、ValidateForm関数がfalseを返した場合、フォームは送信されません。最初の関数では、関数がfalseを返した場合でもフォームは送信されます。

このシナリオでは、returnキーワードを使用した場合と使用しない場合の違いがわかると思います。

[〜#〜] updated [〜#〜]簡略化するために、returnキーワードを使用する場合、onsubmitを呼び出した関数に値を返します。それなしでは、単にイベントハンドラで名前を指定した関数を呼び出して、何も返しません。

40
Glenn Ferrie

returnをfunction()に追加すると、ブラウザのデフォルトの動作が無効になり、submitのジョブが無効になります。関数がfalseを返し、フィールドに値を再び入力できる場合、同じページに留まることを意味します。

Function()でreturnを使用しない場合、submit関数はそのジョブを実行し、返された結果をtrueまたはfalseに関係なく、指定された次のページにリダイレクトします。 。

0
Arun Raaj