Что такое форма.onsubmit()?

#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, выполните блок кода.