I have created web pages that do client-side form validation using the
onclick directive. E.g.,
<form action=other_page.cgi method=post>
Enter your age: <input name=age>
<input type="submit" value="" onclick="return validate_form()">
</form>
where validate_form() returns true or false depending on whether the
user entered a valid age.
This does what I want almost everywhere (e.g., Firefox on FreeBSD,
Safari on Mac, IE on Win2000) but recently I have become aware of an
exception: IE on WinXP.
On WinXP's IE, validate_form() is called (and will display an alert box
if that's that's what I coded), but whether it returns true or false,
the form is submitted. (Then we do the server-side validation and throw
up an error page, but I'd rather catch this client-side.)
So the question I have is: why is WinXP so weird about this? Previous
versions of IE didn't do this.
While looking into this, I've discovered I can also do an onsubmit check
in the form tag, e.g.,
<form action=other_page.cgi method=post onsubmit="return
validate_form()">
Is onsubmit new or has it been around for a while? Can I trust old
Mozillas on Linux to do the right thing with it? Windows is actually a
small portion of the target audience, but I like to make things work for
everyone.
Does it make a difference if the form is submitted to the same page or a
different page? I don't have ready access to Windows XP to test this
out.