2011-10-25 14 views
0

フォームを使用してユーザーから情報を取得しています。ラジオボタンとテキストエリアも使用しています。ユーザーがラジオボタンからオプションを選択しなかった場合は、そのラジオボタンをフォーカスしてユーザーがどのデータが欠落しているかを知る。 私が試した:javascriptのラジオボタンのフォーカスがFirefoxで機能しないのですか?

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

、それが実際にグーグルクロームでうまく動作しますが、何らかの理由では、Firefoxで動作しない、 iはsetTimeout(.....);を使用しようと、再び、それはGoogleのChromeで作業を行いますしかし、私はファイアフォックスでは何も得られません。 これを動作させる方法のアイデアはありますか?

答えて

3

実際にはFirefoxで動作しますが、問題はフォーカスされた項目がFirefoxで強調表示されていないことです。 Tabキーを使用して次のDOM要素をナビゲートしようとすると、そのDOM要素が機能することがわかります。一部のスタイリングは要素に適用できますが、DOM要素のスタイリングもブラウザごとに異なります。ここの例を参照してください http://jsfiddle.net/uQ3vk/

+0

はまさに、焦点は、私はそれがChromeで動作しますが、Firefoxでの焦点は、入力ラジオなどの要素には、注意すべき非常にかすかなものであるのか分からない、ハイライトと同じではありません1pxの灰色の点線のようなものですが、設定した後はすぐにフォーカスを失う可能性があります。 – Griphox

2

あなたのHTMLを見ることなく、私が提案できる最良の選択肢は、あなたのラジオボタン(あるいは少なくとも一つの(S)あなたがプログラム的に焦点を当てることができるようにしたい)を与えることです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; 
} 
関連する問題