- From: Sean Dockery <sdockery@securac.net>
- Date: Mon, 15 Nov 2004 15:39:13 -0700
- To: www-html@w3.org
Thanks to all of you who have responded.
For posterity, below is the answer which I am taking to be correct:
>> Which is the following is correct?
>>
>> a) <form ... onSubmit="return checkData()">
>>
>> b) <form ... onSubmit="return checkData();">
>>
>> c) <form ... onSubmit="checkData()">
>>
>> d) <form ... onSubmit="checkData();">
>>
>> ...where checkData is a JavaScript function that returns a true or false
>> value.
>
> All of them are correct in that they will result in the call of
> checkData. However, only a) and b) will actually affect whether the form
> is submitted.
>
> The content of an intrinsic event attribute becomes the body of an
> anonymous function:
>
> /* Note that IE doesn't pass an event argument. It uses a global
> * variable of the same name. Either way, you can still use:
> *
> * on<event>="myFunction(event)"
> *
> * to access the event object.
> */
> formElement.onsubmit = function(event) {
> /* Value in onsubmit attribute */
> };
>
> Obviously, if you don't include a return statement, no value will
> actually be returned when this anonymous function exits.
>
> With regards to the semicolon, the same rules apply as normal: semicolons
> are generally optional, but it's good practice to include them. If you
> had two or more statements/expressions to evaluate, a semicolon would be
> necessary to separate them.
>
> The final point I like to make is that it's simpler to pass a reference
> to the FORM when it is called, rather than obtain one later. That is:
>
> <form ... onsubmit="return checkData(this);">
>
> function checkData(form) {
> /* You can now use form, rather than
> * document.forms['formName']
> */
> }
>
>> It seems that Internet Explorer accepts all of the above, but I'm not
>> taking that to mean that all are correct.
>
> As I said, they are all syntactically correct, but the second two are
> probably not what you want.
>
> [snip]
>
> Hope that helps,
Received on Monday, 15 November 2004 22:39:23 UTC