简体   繁体   中英

JavaScript, onsubmit

I am trying to understand why onsubmit at Javascript is using an anonymous function to get it value like that:

onsubmit = function() {return validForm();}

I know that onsubmit is taking a true or false values, but i can't understand how does the anonymous function is necessary to get the value of true or false for the onsubmit event, like this:

onsubmit = validForm();

I will be very thankful if some one can please help me understand this, Thank you all and have a nice day.

A valid assignment would be:

onsubmit = validForm;

You're assigning the function called validForm as the onsubmit handler. But, when you do this:

onsubmit = validForm();

You're assigning the result of calling the function validForm to the onsubmit handler. Unless validForm is returning a function , this won't work.

The reason the anonymous function assignment above works is, it is assigning a function to the onsubmit handler -- a function that in turn calls the validForm function when it is called.

You are calling validForm and setting onsubmit to its return value. In example:

function foo () {
    return "hi";
}

onsubmit = foo() // eq to onsubmit = "hi";

onsubmit = foo // onsubmit now has the same function as foo

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM