ページの読み込み時に入力ボックスにデフォルトのフォーカスを設定しようとしています(例:google)。私のページは非常にシンプルですが、これを行う方法がわかりません。
これは私がこれまでのところ持っているものです:
<html>
<head>
<title>Password Protected Page</title>
<script type="text/javascript">
function FocusOnInput()
{
document.getElementById("PasswordInput").focus();
}
</script>
<style type="text/css" media="screen">
body, html {height: 100%; padding: 0px; margin: 0px;}
#outer {width: 100%; height: 100%; overflow: visible; padding: 0px; margin: 0px;}
#middle {vertical-align: middle}
#centered {width: 280px; margin-left: auto; margin-right: auto; text-align:center;}
</style>
</head>
<body onload="FocusOnInput()">
<table id="outer" cellpadding="0" cellspacing="0">
<tr><td id="middle">
<div id="centered">
<form action="verify.php" method="post">
<input type="password" name="PasswordInput"/>
</form>
</div>
</td></tr>
</table>
</body>
</html>
これでうまくいくのにどうしてうまくいかないのですか?
<html>
<head>
<script type="text/javascript">
function FocusOnInput()
{
document.getElementById("InputID").focus();
}
</script>
</head>
<body onload="FocusOnInput()">
<form>
<input type="text" id="InputID">
</form>
</body>
</html>
ヘルプは大歓迎です:-)
この行:
<input type="password" name="PasswordInput"/>
次のようなid属性が必要です。
<input type="password" name="PasswordInput" id="PasswordInput"/>
また、HTML5のオートフォーカス属性を使用できます(IE9以下を除く現在のすべてのブラウザーで動作します)。 IE9以前、または他のブラウザーの古いバージョンの場合にのみスクリプトを呼び出します。
<input type="text" name="fname" autofocus>
これはIEの一般的な問題の1つであり、これに対する修正は簡単です。入力に.focus()を2回追加します。
修正:-
function FocusOnInput() {
var element = document.getElementById('txtContactMobileNo');
element.focus();
setTimeout(function () { element.focus(); }, 1);
}
そして、$(document).ready(function(){.....};でFocusOnInput()を呼び出します。
以下も使用できます。
<body onload="focusOnInput()">
<form name="passwordForm" action="verify.php" method="post">
<input name="passwordInput" type="password" />
</form>
</body>
そして、あなたのJavaScriptで:
function focusOnInput() {
document.forms["passwordForm"]["passwordInput"].focus();
}