it-swarm-id.com

JavaScript 'onclick' event 'mengembalikan' fungsi kata kunci

Saya benar-benar baru dalam javascript, dan menemukan kata kunci return. Pada dasarnya, apa perbedaan dari 2 pernyataan ini?

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

vs. 

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

Pada dasarnya, keduanya mengembalikan hasil yang sama dan memanggil fungsi, tetapi apakah ada yang lebih dari itu? Setiap bantuan sangat dihargai :). Terima kasih!

43
Shiroi98

Mengembalikan salah dari fungsi, akan membatalkan efek pemeriksaan. Karena fungsi asli yang ditulis dengan hardcoded ke properti html (itu menjadi beberapa fungsi lokal baru), menulis html tanpa kata "return" hanya akan menjalankan fungsi, dan kehilangan nilai kembali, seolah-olah Anda telah menulis:

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

Fungsi some_local_function tidak akan mengembalikan nilai apa pun, meskipun doAlert kembali.

Ketika Anda menulis "kembali", itu seperti Anda menulis fungsi kedua seperti ini:

function some_local_function() {
   return doAlert();
}

yang menjaga nilai pengembalian doAlert, apa pun itu. Jika benar - tindakan akan dilakukan (kotak centang akan dicentang) - jika tidak - itu akan dibatalkan.

Anda dapat melihat live expamle di sini: http://jsfiddle.net/RaBfM/1/

37
Y. Shoham

Beberapa elemen html memiliki peristiwa JS yang berperilaku berbeda ketika true/false dikembalikan. Contohnya: 

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

... vs ...

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

Dalam contoh kedua, jika fungsi ValidateForm kembali false, formulir tidak akan mengirimkan, di pertama bahkan jika fungsi kembali false, formulir masih akan mengirimkan. 

Saya pikir skenario ini, Anda dapat melihat perbedaan antara menggunakan kata kunci return dan tidak.

UPDATEDUntuk menyederhanakan, jika Anda menggunakan kata kunci return Anda memberikan nilai kembali ke fungsi yang disebut onsubmit. Tanpa itu, Anda hanya memanggil fungsi yang Anda sebutkan dalam pengendali acara dan tidak mengembalikan apa pun.

38
Glenn Ferrie

menambahkan return ke fungsi (), ia menonaktifkan perilaku default browser, ia menonaktifkan pekerjaan submit. Berarti itu akan membuat Anda tetap di halaman yang sama jika fungsi kembali false dan Anda dapat mengisi nilai ke dalam bidang lagi. 

Jika Anda tidak menggunakan return dengan fungsi () maka fungsi submit akan melakukan tugasnya, itu akan mengarahkan ulang ke halaman yang ditentukan berikutnya, tanpa peduli dengan hasil yang dikembalikan apakah itu benar atau salah.

0
Arun Raaj