2011-10-25 79 views
0

我正在使用表單從用戶獲取信息,我也使用一些單選按鈕和textarea的,如果用戶沒有從單選按鈕中選擇一個選項,我想要關注該單選按鈕,以便用戶可以知道什麼數據丟失。 我已經試過:javascript單選按鈕焦點在Firefox上不起作用?

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

,它實際上在谷歌瀏覽器工作良好,但由於某些原因,它不會對Firefox瀏覽器, 我試圖用一個setTimeout(.....);並再次,它在谷歌瀏覽器工作但我沒有在Firefox中得到任何東西。 任何想法如何讓這個工作?

回答

3

它確實在Firefox中工作,但問題是焦點項在Firefox中未突出顯示。如果您嘗試使用Tab鍵導航下一個DOM元素,您會發現它有效。某些樣式可以應用於元素,但DOM元素樣式也因瀏覽器而異。在這裏看到一個例子 http://jsfiddle.net/uQ3vk/

+0

沒錯,重點是不一樣的亮點,我不知道它是如何工作在Chrome,但在Firefox中的焦點,在這樣的元素作爲輸入,收音機,是注意到一個非常微弱的事情,它就像一個1px灰色的虛線邊框,當然你也可以在設置後立即失去焦點。 – Griphox

2

沒有看到你的HTML我可以建議最好的辦法是給你的單選按鈕(或者至少是一個(或多個)您希望能夠以編程方式集中)的ID:

<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

我認爲在Firefox中缺少的大綱是問題,我知道它是給我的。我添加了一些CSS並顯示。

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