onFocus or focus() issues in Mozilla for Red Hat Linux 8.0?

S

Scott Navarre

Hi,

I have Red Hat 8.0 and have the default Mozilla browser that comes with
it. I am programming in javascript and have come across something
problematic. Given the following code:
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="TEXT" NAME="input1">
<INPUT TYPE="BUTTON" VALUE="Click" onFocus="input2.focus()"
onClick="alert('You clcked me!')">
<INPUT TYPE="TEXT" NAME="input2">
</FORM>
</BODY>
</HTML>

When using MSIE or Netscape for Windows: if you click inside the first
text input and then tab to the button, it will automatically forward focus
to the second text input where you can type text there. This is how I want
it to behave.

But when using Mozilla in RH8.0: when you tab to the button the cursor
appears in the second text input, and so looks like it is working correctly.
But when you try to type something, nothing happens -- the cursor just sits
there blinking. If you then hit the enter key, it will act the same as if
the button has focus (popping up the alert window, since hitting Enter while
a button has focus is the same as clicking the button with the mouse).
So it seems to me that when tabbing to the button, the button is
internally keeping focus even though the event handler is telling it to
forward focus to the second text input and even though the second text input
appears to have focus with the appearance of a cursor.


And the problem isn't only when the element I am trying to skip is a
button. Given the following code:
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="TEXT" NAME="input1">
<INPUT TYPE="TEXT" NAME="input2" onFocus="input3.focus()">
<INPUT TYPE="TEXT" NAME="input3">
</FORM>
</BODY>
</HTML>

Once again, MSIE and Netscape for Windows handles this properly. But in
Mozilla for RH8.0 when tabbing to the second text input, the cursor appears
there and you can type in the second text input -- it doesn't forward the
focus at all. And worse yet when tabbing from the second text input to the
third text input, the cursor skips the THIRD text input and appears in the
location input at the top of the browser!!!
Furthermore when 'clicking' on the second text input with the mouse, the
text cursor appears in the second text input and stays there but typed text
from the keyboard appears in the third text input.

Does anyone know if these are bugs with that Mozilla (or that version of
it), or does Mozilla have a different event handler or javascript command
that I can give to make it work properly??? The Netscape version on Windows
I am using is 4.0, and I thought Mozilla was created FROM Netscape...

Thanks in advance,
Scott Navarre
 
R

Robert Mohr

Scott said:
Hi,

I have Red Hat 8.0 and have the default Mozilla browser that comes with
it. I am programming in javascript and have come across something
problematic. Given the following code:
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="TEXT" NAME="input1">
<INPUT TYPE="BUTTON" VALUE="Click" onFocus="input2.focus()"
onClick="alert('You clcked me!')">
<INPUT TYPE="TEXT" NAME="input2">
</FORM>
</BODY>
</HTML>

Mozilla doesn't know if you're referring to id 'input2', class 'input2'
or name 'input2'. Use 'document.getElementById(input2).focus()'.
 
M

Michael Winter

Scott Navarre wrote:
[snip]
<FORM>
<INPUT TYPE="TEXT" NAME="input1">
<INPUT TYPE="BUTTON" VALUE="Click" onFocus="input2.focus()"
onClick="alert('You clcked me!')">
<INPUT TYPE="TEXT" NAME="input2">
</FORM>
</BODY>
</HTML>

Mozilla doesn't know if you're referring to id 'input2', class 'input2'
or name 'input2'. Use 'document.getElementById(input2).focus()'.

That wouldn't do much good. Even if you correctly specified the string
literal 'input2' only IE, out of my four browsers, will return a reference
to the third input element.

It should be clear from the name that the getElementById method will only
return a reference to an element with the given id attribute, not a
matching name attribute.

The controls exist within a form, so the simpler approach would be:

onfocus="this.form.input2.focus();"

However, if the sole purpose is to skip a control in the tabbing order,
use the tabindex attribute:

<input ... name="input1" tabindex="1">
<input ... type="button" tabindex="0">
<input ... name="input2" tabindex="2">

Mike
 
S

Scott Navarre

Didn't help -- even if I use 'document.forms[0].elements[2].focus()', it
behaves EXACTLY the same way.
 
A

Andrew Schultz

Scott said:
But when using Mozilla in RH8.0: when you tab to the button the cursor

so upgrade... your html works fine with current Mozilla. Red Hat 8.0
shipped with Mozilla 1.0.1, which (compared to current builds) was buggy.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top