admin管理员组

文章数量:1287200

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.

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.

Share Improve this question asked Jul 23, 2012 at 13:37 Aviel FedidaAviel Fedida 4,1029 gold badges57 silver badges89 bronze badges 2
  • You can simple onsubmit = validForm – Andreas Louv Commented Jul 23, 2012 at 13:38
  • Thank you guys i got it now, have a nice day. – Aviel Fedida Commented Jul 23, 2012 at 13:49
Add a ment  | 

2 Answers 2

Reset to default 7

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

本文标签: javascriptonsubmitStack Overflow