Reputation: 4102
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.
Upvotes: 2
Views: 6657
Reputation: 6034
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
Upvotes: 5
Reputation: 140032
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.
Upvotes: 7