5568 sujets

Sémantique web et HTML

Bonjour,

J'ai dans une page qui doit être xhtml :
<form name="msge" method="get" action="...
  <div>
    <input type="text" name="expe" maxlength="100" value="...
    <input type="text" name="email" maxlength="100" value="
  </div>
</form>
<script type="text/javascript">document.msge.expe.focus();</script>

or en XHTML, le name de form est rejeté.
Comment faire (coder autrement) pour que le champ d'imput expe
reçoive le focus au chargement de la page,
comme ça se produit en html ?

Merci.
Modifié par ybruant (13 Apr 2008 - 19:11)
Salut ybruant,

si tu as besoin de cibler ton formulaire (ce qui n'est pas le cas dans ton exemple Smiley cligne ), tu peux lui mettre un id="msge".

Pour donner le focus, il suffit de rajouter un id en complément du name à tes balises <input> et d'utiliser la forme getElementById. Ce qui donne par exemple :
<input type="text" name="expe" id="expe"... />
...
document.getElementById('expe').focus();

A+
Merci beaucoup.

J'avais essayé avec
document.getElementByName('expe').focus();

mais ça ne marche pas (pourquoi ?) aussi je m'étais adressé à vous.

Encore merci.
Re',

un pitit exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<title>Test focus</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script type="text/javascript">
	window.onload=function() {
		document.getElementById('email').focus();
	}
	</script>
	</head>
<body>
<form method="get" action="">
  <p>
    <input type="text" name="expe" id="expe" />
    <input type="text" name="email" id="email" />
	<input type="submit" />
  </p>
</form>
</body>
</html>

A+ Smiley cligne
Modifié par Heyoan (15 Apr 2008 - 06:52)
Oups ! Je viens de relire ton message et je vois que j'ai répondu à côté de la plaque : ça ne fonctionnait pas car il ne s'agit pas de getElementByName mais de getElementsByName (avec un s) qui retourne un tableau de tous les éléments ayant le même nom. Comme un id est unique on est sûr de le cibler avec getElementById. Pour que cela fonctionne avec getElementsByName et à condition que tu n'aies bien qu'un seul élément ayant le nom "expe", tu aurais pu faire :
document.getElementsByName("expe")[0].focus();