impaler wrote:
> Stefan Mueller wrote:
>> In my example the focus should only jump to textbox2 when you press the
>> tab key if '11' is in textbox1. If the value of textbox1 is not '11' than
>> the focus should be set back to textbox1. That works great in IE but in
>> Mozilla the cursor always jumps to textbox2 if you press the tab key even
>> if the value is not '11'.
>> [...]
>> * function test(object) {
>> * * if (object.value == 11) {
Values of form controls are strings; this comparison works because of
implicit type conversion. Therefore, "11.000", "0x0B" and "0x0b" also
equal (`=='), but not strictly equal (`==='), 11. Unless this behavior
is wanted, it should be
if (object.value == "11") {
>> * * * return (true);
>> * * }
>> * * else {
>> * * * return (false);
>> * * }
>> * }
>> * * * <form name = "my_form" action = "" method = "post" accept-charset =
>> "iso-8859-1">
>> [...]
>> <input type = "text" name = "my_textbox1" onBlur = 'if
>> (!test(document.my_form.my_textbox1))
>> {document.my_form.my_textbox1.focus();}'>
>> <input type = "text" name = "my_textbox2">
>> [...]
>> </form>
>> [...]
>> What do I do wrong?
>> [...]
Please trim your quotes.
> You do nothing wrong. Firefox has it all wrong.
> It's a nasty bug that persists since the beginning.
It is not a bug. The `blur' event occurs when an element loses focus
(read: is about to lose focus), not when it has lost focus already.
<URL:http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents>
> Try this workaround:
> change
> document.my_form.my_textbox1.focus();
> with
> setTimeout("document.my_form.my_textbox1.focus();" ,1);
Eeek. The solution to prevent keyboard navigation in this case is, of
course, to cancel the keyboard event if the key pressed was the tab key
and test() returned `false'.
<input ... onkeydown="return test(this) || (event.keyCode != 9);">
WFM in Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.

Gecko/20060110
Debian/1.5.dfsg-4 Firefox/1.5 Mnenhy/0.7.3.0.
However, this is not a Good Thing. Form data validity must not depend
entirely on DOM scripting, server-side testing is required. As for
form validation, it is better to do it before the form is submitted.
PointedEars