2011-10-25 4 views
0

양식을 사용하여 사용자로부터 정보를 얻고 일부 라디오 버튼과 텍스트 영역을 사용하고 있습니다. 사용자가 라디오 버튼에서 옵션을 선택하지 않은 경우 해당 라디오 버튼에 집중하여 사용자가 누락 된 데이터를 확인하십시오. 나는 시도했다 :javascript 라디오 버튼 포커스가 Firefox에서 작동하지 않습니까?

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

와 실제로 구글 크롬에서 잘 작동하지만 몇 가지 이유가 파이어 폭스에서 작동하지 않습니다, 내가는 setTimeout(.....);를 사용하려고 다시, 그것은 구글 크롬에 대한 작업을 수행 하지만 난 파이어 폭스에서 아무것도 얻지 못해. 작동 방법에 대한 아이디어가 있으십니까? 와 마찬가지로

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

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

:

답변

3

실제로 파이어 폭스에서 작동하지만 초점은 파이어 폭스에서 강조 표시되지 않습니다. 탭 키를 사용하여 다음 DOM 요소를 탐색하려고하면 해당 DOM 요소가 작동한다는 것을 알 수 있습니다. 일부 스타일은 요소에 적용 할 수 있지만 DOM 요소 스타일은 브라우저마다 다릅니다. 여기 예제를 참조하십시오. http://jsfiddle.net/uQ3vk/

+0

정확하게 초점은 하이라이트와 같지 않습니다. Chrome에서 작동하는 방식을 모르지만 Firefox에서는 입력 라디오와 같은 요소에주의를 기울여야합니다. 1px 회색 점선 테두리와 비슷합니다. 물론 설정 한 후에 바로 초점을 잃을 수도 있습니다. – Griphox

2

당신의 HTML을 보지 않고 내가 제안 할 수있는 최선의 옵션은 ID (프로그래밍 방식으로 초점을 맞출 수 있도록하려면) 또는 적어도 하나의 (들) 라디오 버튼을 제공하는 것입니다 DOM 요소에 프로그래밍 방식으로 액세스하는 경우 요소가 아직 구문 분석되지 않은 경우 코드가 작동하지 않으므로 코드는 document.ready/onload 핸들러에 있거나 요소의 소스보다 나중에 있어야합니다. 문제의. (또는 제출 처리기에서 페이지가로드되기 전에 제출이 발생하지 않는다고 가정하십시오.)

0

Firefox의 누락 된 윤곽이 문제라고 생각합니다. 몇 가지 CSS를 추가하고 보여주었습니다.

input:focus 
{ 
    outline:#000 dotted 1px; 
}  
select:focus 
{ 
    outline:#000 dotted 1px; 
} 
관련 문제