Page 1 sur 1

input actif au chargement

Posté : 13 févr. 2007, 19:02
par VaN
Bonjour,

le titre du thread est surement très mal dit, mais je ne sais pas du tout comment appeler ce que je cherche à faire.

J'ai un formulaire, et j'aimerai qu'au chargement de la page, un de mes input soit directement prêt a recevoir un texte, c'est a dire que je n'ai pas besoin de cliquer dedans pour pouvoir y "crire du texte.

Comme par exemple sur Google : on affiche la page principale, et pouf, on peut directement écrire sa recherche.

Comment puis-je faire ?

Posté : 13 févr. 2007, 20:03
par Ajoloca
Bonjour,

Tout simplement en utilisant des évènements.
Voici un petit exemple, il n'y-a pas grande chose à expliquer. Regarde et tu comprendras facilement
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
		<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
		<meta http-equiv="content-style-type" content="text/css"/>
		<meta http-equiv="expires" content="0"/>
		<title>Positionne sur premier champ</title>
		<script type="text/JavaScript">
		  // On détecte la fin du chargement de la page
		  window.onload = function(){
		    // On passe le focus au champ voulu
		    document.getElementById("champ_1").focus();
		  }
		</script>
	</head>
<body>
	<div>
	  <form action="" method="">
	    <input id="champ_1" type="text" />
	  </form>
	</div>
</body>
</html>

focus input au chargement de la page

Posté : 29 août 2008, 20:35
par Jymi

Code : Tout sélectionner

<script type="text/JavaScript"> window.onload = function(){ document.getElementById("LOGIN|PSEUDO").focus(); } </script> <form name="authentification" action="'.$_SERVER['PHP_SELF'].'" method="post"><p> Login : <input class="input_authentification" type="text" name="LOGIN|PSEUDO" value="Pseudo" onFocus="this.select();"></br> PassWord : <input class="input_authentification" type="password" name="LOGIN|PASSWD" value="PassWord" onFocus="this.select()"></br> <input class="input_authentification" type="submit" value="Connexion"> </p></form>
Chose bizarre, si je choisis getElementById tout fonctionne à merveille, si comme je le pensais initialement je programme getElementByName, le focus ne fonctionne pas ???

Je tiens cependant à signaler que cette méthode est la seule fonctionnant avec des noms de champs qui comportent des symboles systèmes tels que " | " utilisé dans mon exemple. Les autres méthodes telles que celle-ci

Code : Tout sélectionner

<body onload="document.formulaire.champs.focus();">
ne donnent rien, peut-être d'ailleurs à cause du problème évoqué entre Id et Name ???

Je n'ai pas d'explication !

Posté : 29 août 2008, 21:47
par sadeq
Ce n'est pas getElementByName mais getElementsByName

D'autres parts, le choix du caractère "|" pour composer tes noms de champs n'est pas judicieux car ce fameux caractère "|" est un mot réservé en programmation et il est utilisé pour représenter l'opérateur logique OU dans les expressions conditionnelles.

A ta place j'utiliserais le caractère "_" (souligné) pour composer un nom de variable. Ce qui donnerait par exemple : LOGIN_PSEUDO, LOGIN_PASSWORD, ...

Posté : 29 août 2008, 22:52
par Cyrano
J'ajouterais pour information que getElementById pointe sur un seul élément alors que getElementsByName retourne un tableau indexé