Фокус кнопки радио JavaScript не работает в Firefox? - PullRequest
0 голосов
/ 26 октября 2011

Я использую форму для получения информации от пользователя, а также я использую некоторые радиокнопки и текстовые поля, если пользователь не выбрал опцию из радиокнопок, я хочу сфокусировать эту радиокнопку, чтобы пользователь может знать, какие данные отсутствуют. Я пробовал:

document.FORM.RADIOBUTTON[INDEX].focus();

и он действительно хорошо работает в Google Chrome, но по некоторым причинам он не работает в Firefox, Я пытался использовать setTimeout(.....); и снова, он работает на Google Chrome, но я ничего не получаю в Firefox. есть идеи, как заставить это работать?

Ответы [ 3 ]

3 голосов
/ 26 октября 2011

Это действительно работает в Firefox, но проблема в том, что сфокусированный элемент не выделен в Firefox. Если вы попытаетесь перейти к следующему элементу DOM с помощью клавиши табуляции, вы обнаружите, что он работает. Некоторые элементы могут быть применены к элементам, но стили DOM-элементов также отличаются от браузера к браузеру. Смотрите пример здесь http://jsfiddle.net/uQ3vk/

2 голосов
/ 26 октября 2011

Не видя ваш HTML, лучший вариант, который я могу предложить, это дать вашим переключателям (или, по крайней мере, те, которые вы хотите иметь возможность программно фокусировать) идентификатор:

<input type="radio" id="radio1" name="someradiogroup" value="somevalue">
<input type="radio" id="radio2" name="someradiogroup" value="someothervalue">

<script>
document.getElementById("radio1").focus();
</script>

Какс любым программным доступом к элементам DOM ваш код не будет работать, если элемент (ы) еще не проанализирован, поэтому код должен быть либо в обработчике document.ready / onload, либо позже в источнике, чем элемент (ы)) обсуждаемый.(Или в обработчике отправки, предполагая, что отправка не произойдет до загрузки страницы.)

0 голосов
/ 07 декабря 2012

Я думаю, что отсутствующий контур в Firefox - это проблема, я знаю, что это было для меня. Я добавил немного CSS и показал его.

input:focus 
{
  outline:#000 dotted 1px; 
}    
select:focus
{
  outline:#000 dotted 1px; 
} 
...