2011-01-13 5 views

答えて

6

JavaScriptのautofocusersを(ここでは他の回答に与えられる)動作しますが、一部のユーザーのためにいらいらすることができます。たとえば、ページがまだ読み込まれている間に別のフィールドにフォーカスを当てると、JavaScriptはフォーカスを移動して間違ったフィールドに入力することで "助けて"いるかもしれません。 ux.stackexchange.comのThis questionには、いくつかの欠点が列挙されています。

これを防ぐために、HTML5はフォーム要素にautofocus attributeを導入しました。これは、ブラウザ自体によって動作が一貫して実装され、刺激を感じるユーザーに対しては無効にできることを意味します。もちろん、これはまだすべてのブラウザでサポートされているわけではありません。詳しくは、autofocus fieldsのマークピルグリムの優れたDive Into HTML5のセクションを参照してください。

+1

+1のための '迷惑な' – Dancrumb

+0

@Dancrumbイエスは、[関連する質問ui.stackexchange.com](http://ui.stackexchange.com/q/2861/2530)へのリンクを追加しました。詳細は – Day

+0

ありがとうございます「オートフォーカス」が追加され、後ですべてのブラウザで機能するようにすべてを読み上げます。ありがとう – lisovaccaro

6

JavaScriptを使用して、あなたはこれを達成することができます:

document.onload = function() { 
    document.getElementById("question-box-0").focus(); 
} 
+0

私はそれを動作させることもできませんでした。これは、PHPファイルから読み込むモーダルウィンドウです。それは何かすることができますか?私はフォームのすぐ上にスクリプトを追加しても機能しませんでした。ありがとう – lisovaccaro

+0

フォームがあるファイルの ''タグ内に存在するようにそのスクリプトを追加する必要があります。 ''タグで囲みます。 –

+0

JSはajaxまたは類似のフレームワークが動作しないとロードされます。 JS関数を実行するには、のように@MichaelIrigoyenが – mandza

2
<html> 
<head> 
<script> 
document.onload = function() { 
document.getElementById('question-box-0').focus(); 
}; 
</script> 
</head> 
<body> 
... 
</body> 
</html> 
+0

のようにロードする必要があります。動作しませんでした。これはPHPファイルからロードするモーダルウィンドウです。それは何かすることができますか?私はフォームのすぐ上にスクリプトを追加しても機能しませんでした。ありがとう – lisovaccaro

+0

私の例のようにタグでスクリプトを設定しようとします。これは、実際にイベントが発生する前にdocument.onloadイベントハンドラが設定されていることを確認するためです。 –

関連する問題