views:

145

answers:

3

Given the code below:

<html>
<head>
<script>
  function test() {
  document.forms[0].TEST[0].focus();
}
</script>
</head>
<body>
  <form>
    <input type="button" value="Test" onclick="test()" />
    <input type="radio" name="TEST" value="A">A</input>
    <input type="radio" name="TEST" value="B">B</input>
  </form>
</body>
</html>

In IE6, clicking the button doesn't focus the control, unless I've already tabbed through the radio at least once, in which case it works. =/

Any idea how I should be focusing the control? The above works perfectly fine in FF of course.

Edit: I found that the control is being focused, except the highlight box around the radio button is not being rendered. (I can hit space to activate the radio button, and also use arrow keys to change the active button). So the question becomes: how can I force the focus highlighting box to render?

A: 

Actually it's focussing, you can test it by focusing the second item and after clicking the button click space, you can see the second item selected. This shows the items are getting focus but I think you mean the dashed selection after focus. I don't know how to do that.

Canavar
Um...that doesn't work either. It doesn't seem to matter how I got the relevant radio element (whether by id or referencing through the form). The problem seems to be with the focus() function of IE itself.
Roy Tang
A: 

Shouldn't TEST[0] be in lowercase?

Thevs
no, it needs to match the value declared in the input
annakata
HTML attribute names are case-insensitive, so references to them are made in lower case.
Thevs
A: 

There's an option in the Accessibility Advanced Options of Internet Explorer that says something like "Move the system cursor with selection or focus". It might be a solution if you have a way to propagate IE settings.

edit: it doesn't work

Alsciende
No, it doesn't, unless there's a way to manipulate IE settings with Javascript.
TFM
There may be. Regardless, in some projects, you can enforce internet explorer settings.
Alsciende
Well, rather than leaving the rest of us in the dark, maybe you have an example code to share with us?
TFM
Hum no. I said that there "may be" a way to set ie options by javascript, because I think it's possible to do the same thing in firefox. But what I meant is that if it's an intranet project, Roy Tang may be able to give his users directions on how to properly configure IE. That's what we do with our project, actually: we configure IE for our clients, and this is one of the options that we set.
Alsciende
well, it doesn't work.
Alsciende
After the edit, my answers look a bit off topic. :pWell, there cannot be a way to manipulate browser settings with Javascript, it would be a MAJOR security mistake.
TFM
That's perfectly true. But Firefox has user.js that lets users change their settings by javascript, kinda :p
Alsciende