2010-08-01 8 views
80

J'essaie de définir le focus par défaut sur une zone de saisie lors du chargement de la page (exemple: google). Ma page est très simple, mais je n'arrive pas à comprendre comment faire.Définition du focus sur une zone de saisie HTML lors du chargement de la page

C'est ce que j'ai jusqu'à présent:

<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> 

Comment se fait-cela ne fonctionne pas alors que cela fonctionne bien?

<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> 

aide est très appréciée :-)

Répondre

33

Cette ligne:

<input type="password" name="PasswordInput"/> 

doit avoir un attribut id , comme ceci:

<input type="password" name="PasswordInput" id="PasswordInput"/> 
271

Et vous pouvez utiliser Autofocus de HTML5 (fonctionne dans tous les navigateurs actuels sauf IE9 et bel ow). N'appelez votre script que s'il s'agit d'IE9 ou d'une ancienne version d'un autre navigateur.

<input type="text" name="fname" autofocus> 
+24

« fonctionne dans tous les navigateurs actuels » - que dépend vraiment de votre définition de "tous les navigateurs actuels" –

+7

ie9: http://stackoverflow.com/questions/8280988/how-to-make-input-autofocus-in-internet-explorer – jedierikb

+0

@BhaveshGangani ['autofocus' est pas pris en charge dans Internet Explorer 9 et versions antérieures.] (http://www.w3schools.com/tags/att_input_autofocus.asp) –

0

Vous pouvez également utiliser:

<body onload="focusOnInput()"> 
    <form name="passwordForm" action="verify.php" method="post"> 
     <input name="passwordInput" type="password" /> 
    </form> 
</body> 

Et puis dans votre JavaScript:

function focusOnInput() { 
    document.forms["passwordForm"]["passwordInput"].focus(); 
} 
2

C'est l'un des problèmes communs avec IE et résoudre est simple. Ajouter .focus() deux fois à l'entrée.

Fix: -

function FocusOnInput() { 
    var element = document.getElementById('txtContactMobileNo'); 
    element.focus(); 
    setTimeout(function() { element.focus(); }, 1); 
} 

Et appelez FocusOnInput() sur $ (document) .ready (function() {.....};

Questions connexes