Подтвердить что ты не робот

JavaScript 'onclick' event 'return' функциональность ключевого слова

Я действительно новичок в javascript, и наткнулся на ключевое слово return. Какова разница между этими двумя утверждениями?

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

против

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

По сути, оба возвращали одинаковые результаты и вызывали функцию, но есть ли что-то еще? Любая помощь с благодарностью :). Спасибо!

4b9b3361

Ответ 1

Возврат false из функции отменяет эффект проверки. Поскольку нативный из функций, написанных жестко закодированными в свойствах html (он стал некоторой новой локальной функцией), запись html без слова "return" просто запустит функцию и потеряет возвращаемое значение, как если бы вы написали:

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

Функция some_local_function не вернет никакого значения, хотя возвращает doAlert.

Когда вы пишете "return", это похоже на то, что вы написали вторую функцию следующим образом:

function some_local_function() {
   return doAlert();
}

который сохраняет возвращаемое значение doAlert, каким бы оно ни было. Если это правда - действие будет выполнено (флажок будет проверен) - в противном случае - он отменяется.

Здесь вы можете увидеть live expamle: http://jsfiddle.net/RaBfM/1/

Ответ 2

Некоторые элементы html имеют события JS, которые ведут себя по-разному, когда возвращается значение true/false. Например:

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

... против...

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

Во втором случае, если функция ValidateForm вернула false, форма не будет отправлена, в первом случае, даже если функция вернет false, форма все равно будет отправлена.

Я думаю, что в этом сценарии вы можете увидеть разницу между использованием ключевого слова return и не.

ОБНОВЛЕНО Для упрощения, если вы используете ключевое слово return вы передаете значение обратно в функцию, onsubmit. Без этого вы просто вызываете функцию, которую вы называете в обработчике событий, и ничего не возвращаете.

Ответ 3

добавив return к функции(), он отключает поведение браузера по умолчанию, отключает задание на submit. Это означает, что он будет держать вас на той же странице, если функция вернет false, и вы можете снова ввести значение в поле.

Если вы не используете return с функцией(), то функция submit выполнит свою работу, она будет перенаправлена на следующую указанную страницу, не заботясь о возвращенном результате, независимо от того, было ли оно истинным или ложным.