2014-01-31 4 views
4

На Moz Dev сети, он дает пример использования OnChanged как это:Что означает «возвращение» делать в «вернуть MyFunction()»

<textbox id="find-text" onchange="return myFunction(event);"/> 

В чем разница между выше и ниже который не использует «возврат»?

<textbox id="find-text" onchange="myFunction(event);"/> 

Вот полный пример:

<input onchange="return checkChanged()" type="checkbox" /> 
<script> 
    function checkChanged() { 
     alert("checkChanged"); 
     return false; 
    } 
</script> 

использовать ли я «возвращение» или нет, значение всегда изменяется после нажатия. Я бы подумал, что, поскольку он возвращает false, тогда он не позволит пользователю установить флажок.

EDIT: Фактический ответ в этом примере - «Ничего». Однако это происходит потому, что onchange не отменяется. Другие события, такие как onclick ARE, могут быть отменены, а возврат false предотвращает действие по умолчанию, например, предотвращает нажатие кнопки (т. Е. Проверка не будет изменяться.)

ответ

2

Это вернет результат вашего вызова myFunction(). В вашем случае, если это вернет логическое значение, это изменится или не будет <textarea>.

Подробнее о Function на MDN и onchange элемент собственности.

+0

Спасибо, я не был уверен, почему иногда вы возвращаете значение из обработчика событий.:) – Scimonster

+0

Когда я пытаюсь привести пример, он меняет состояние, хотя я возвращаю false. –

+0

Я говорил, почему это работает в Event. Поэтому в случае флажка вы должны использовать 'onclick', тогда он не будет нажат. Например, в 'textarea'' onkeypress'. См. JsFiddle http://jsfiddle.net/w56S2/ – antyrat

0

Когда вы возвращаете что-то из функции, это значение возвращается к вызывающему абоненту . Например, скажем, у меня был способ умножить два числа. Может быть, код выглядит следующим образом:

function multiply(num1, num2) { 
return num1 * num2; 
} 
result = multiply(2, 4); 

Функция умножения будет возвращать результат его умножения на где бы оно ни называлось. Правая часть задания результата равна , где вызывается функция, поэтому возвращается результат. Итак, в этом случае (с параметрами 2 и 4) это то же самое, что и запись result = 8;

Когда вы используете return true или false с разметкой, вы указываете , хотите ли вы, чтобы действие по умолчанию происходило после выполнения javascript .

0

Reference Link Из этого

Наборов или возвращает логическое значение, указывающее, canceled.When ли текущее событие событие будет отменено действие по умолчанию, которое принадлежит к событию не будет выполнен. Например, когда событие onclick (событие onclick отменяется) отменяется для флажка, и при нажатии на этот флажок не изменяется его состояние.

Использование возвращаемого значения заключается в предотвращении выполнения обработчика событий по умолчанию на основе возвращаемого значения Boolean. Любое событие может быть отменено. Вы можете использовать возврат, когда хотите, когда хотите, чтобы какое-то условие вы хотите предотвратить выполнение по умолчанию.
For example: onclick событие отправки кнопки формы, если вы вернете false, это предотвратит отправку формы и, если вы вернете истину, она будет продолжать отправлять.

+0

Спасибо, это имеет смысл. –

Смежные вопросы