#javascript #javascript-events
#javascript #javascript-события
Вопрос:
может кто-нибудь объяснить мне эту функцию. Что означает !theForm.onsubmit()
и theForm.onsubmit() != false
означает?
//<![CDATA[
var theForm = document.forms['Form'];
if (!theForm) {
theForm = document.Form;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
И когда я проверил с помощью консоли, я получил это;
!theForm.onsubmit
true
theForm.onsubmit
null
!null
true
В чем смысл theForm.onsubmit
, как это может быть null
и !null
быть правдой?
И когда я проверил theForm.onsubmit() != false
, я получил:
theForm.onsubmit()
TypeError: object is not a function
theForm.onsubmit() != false
TypeError: object is not a function
В чем, кстати, разница между theForm.onsubmit
и theForm.onsubmit()
?
Ответ №1:
theForm.onsubmit
является обработчиком события для submit
события. Если это так null
, обработчик не был установлен. Когда он установлен, он должен быть функцией. theForm.onsubmit()
вызывает функцию, как и любую другую.
Вы получаете эту ошибку, theForm.onsubmit()
потому что, по-видимому, обработчик не был установлен. Вам нужно выполнить все выражение вместе.
if (!theForm.onsubmit || (theForm.onsubmit() != false))
Если обработчика нет или вызов обработчика возвращает false, выполните блок кода.