11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Si comme ça je vous envoie ce code et je vous demande quel est l'intrus, à quoi pensez-vous ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


function fs()
{
	document.f.login.focus();
}


<body onload="fs();">
<form action="#" method="post" id="connexion" name="f">
<label>Identifiant : <input name="login" type="text" /></label>
</form>
</body>


Une astuce pour ceux qui ne trouvent pas : W3C Smiley murf
Modifié par tsing (18 Nov 2005 - 17:52)
Bon j'avoue que ma question est tordue Smiley biggol
En fait il s'avère que W3C n'aime pas beaucoup l'attribut name="q" de ma balise <form> grâce auquel je peux placer le prompt dès le chargement de la page sur l'entrée identifiant. Et pour cause : XHTML 1.1 Smiley ohwell D'où l'intrus Smiley smile

Bref, je suis donc confronté à un problème :
- soit j'utilise quelque chose comme du HTML 4.1 Smiley sweatdrop
- soit je supprime cet attribut (et avec cette fonctionnalité javascript)

Or, j'aimerais bien garder les deux. Donc, si vous saurriez comment faire pour remodeler un peu la fonction histoire de concerver le prompt au démarrage de la page en supprimant l'attribut name (pour rester conforme aux normes Smiley lol ) cela serait parfait Smiley ravi

Bon week end (et oui, déjà !)
C'est simple, pour commencer on refait le code JavaScript de sorte à séparer totalement le contenu du dynamisme (JS), parce que le onload="fonction()" ce n'est pas beau.
<script type="text/javascript">
<!--
window.onload = function()
{
 document.forms['idFormulaire'].elements['login'].focus();
}
-->
</script>

À insérer dans <head> et <head>, bien sûr.

Ensuite, dans le formulaire, en effet, en XHTML, l'attribut name n'existe plus que pour les éléments du formulaire. Il faut le remplacer par l'attribut ID :
<form action="blablabla" id="idFormulaire">

...par lequel, comme tu le vois sur mon script, on appelle le formulaire.

Une autre alternative aurait été d'utiliser un tableau indexé numériquement. C'est-à-dire que si c'est le premier formulaire de ta page, tu aurais pu mettre document.forms[0].elements[3].focus() (où elements[3] correspond au 4e (on compte à partir de 0) élément de ta page).

PS : Je te conseille de passer au XHTML 1.0, ou alors même en HTML, parce que le XHTML 1.1 n'est pas encore... "au point" du point de vue de l'interprétation des navigateurs. Si tu veux en savoir plus, consulte la FAQ, fais une recherche sur le forum,...
Modifié par Nyro Xeo (18 Nov 2005 - 17:32)
Je viens de mettre à jour mon code avec tes précieux conseil. En effet, c'est encore mieux en séparant, outre les données et leur présentation, les spécification de dynamisme dans les pages. En plus, ça fait très pro Smiley lol

Merci à toi ! Bon week end !! ahah Smiley ravi
De rien. Si je puis me permettre, tu devrais éditer ton titre pour le rendre plus explicite (pour les recherches [enfin même s'il doit y avoir déjà multitudes de sujets sur ce même problème]), par exemple "[Résolu] <form> : Attribut name interdit en XHTML".

Parce que même si "problème de formulaire" est plus explicite que "problème", ça reste très très vague...

Bon week end Smiley smile