IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

[W3C] Erreur W3C sur "input"


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut [W3C] Erreur W3C sur "input"
    Bonsoir à tous,

    Je valide mon site avec W3C et je corrige les erreurs que je comprends.

    J'ai mis cette syntaxe en respectant (j'espère) pour être validée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="Envoyer" value="Envoyer" /><br /><br />
    Seulement, W3C détecte une erreur et je ne vois pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Line 331, column 61: document type does not allow element "br" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag
    Pourtant, j'ai suivi les conseils pour la validation de "input" !

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Bonsoir,
    est ce que ton form est directement suivi d'un élément de niveau block (div, p, fieldset)?
    Les br ne sont pas fait pour créer des espacement..., utiliser un display:block avec un margin-bottom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="Envoyer" value="Envoyer" style="display:block; margin-bottom:...px" />

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Pour préciser ce que dit Erwan31, ce n'est pas l'input qui gêne mais les br.

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    et si tu allais dans ton éditeur de texte et que tu tapais sur [enter] après la fin de ta balise input? ^^

    Il me semble que la norme est à une balise par ligne.
    En même temps, nous préciser ton doctype (même si xHTML donc facile à deviner) n'aurait pas été inutile...
    Enfin si vu qu'on le devine mais bon
    Pour ceux qui ne s'y connaissent pas et veulent faire des tests
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  5. #5
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Bonsoir,
    est ce que ton form est directement suivi d'un élément de niveau block (div, p, fieldset)?
    Les br ne sont pas fait pour créer des espacement..., utiliser un display:block avec un margin-bottom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="Envoyer" value="Envoyer" style="display:block; margin-bottom:...px" />
    Merci Erwan31, mais une petite précision tout de même !

    Le "margin-bottom:...px", ça pourrait correspondre à quoi ?

    Il faut que je te précise que c'est un script PHP, tout au moins, du Html dans du Php, donc cela ne m'arrange pas du tout !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php if(empty($_POST))
    {
            if($_GET["message"]=="ok")
                    $corps.="Votre mail a bien été envoyé, ainsi que votre adresse IP : ".$_SERVER['REMOTE_ADDR']."\r\n<br />" ;
            else
                    echo '<span class="titre-page">Formulaire de contact</span><br /><br />';
                    echo '<form method="post" action="index.php?id=contact"><br />
                    <label for="email">Votre adresse e-mail : * </label><input type="text" name="email" id="email" /><br /><br />
                    <label for="objet">Sujet : * </label><input type="text" name="objet" id="objet" /><br /><br />
                    <label for="message">Message : * </label><br /><textarea name="message" id="message" cols="50" rows="10"></textarea><br /><br />
                    <label for="question">Code antispams :</label> (Ceci évite la recherche d\'adresses par les robots)<br />
                    
                    <input type="text" name="premiernombre" value="'.rand(0,100).'" size="1" readonly="readonly" />
    <!--            <input type="text" name="secondnombre" size="1" value="'.rand(100, 200).'" readonly="readonly" /> -->
                    <input type="text" name="troisiemenombre" value="'.rand(0, 200).'" size="1" readonly="readonly" /><br />
                    
    <!--            <span style="font-weight:bold;color:red;">Recopiez les nombres contenus dans le <u>premier</u> et le <u>troisième champ</u></span> (ci-dessus) l\'un à la suite de l\'autre dans le champ ci-dessous :<br /> -->
                    Recopiez les nombres que vous voyez dans le champ ci-dessus (sans espace) : *<br />
                    <input type="text" name="question" id="question" size="4" /><br /><br />
                    Votre adresse IP sera automatiquement envoyée quand vous enverrez votre message.<br />
                    <input type="submit" name="Envoyer" value="Envoyer" /><br /><br />
                    </form>' ;
    }
    else
    {
    ...
    J'ai pris ce script dans un exemple de site, qui, lui, était totalement valide (exemple_site_valide).
    J'ai fais ça par que j'en avais marre de galérer avec un formulaire de contact contenant un captchat.

    De plus, toi-même et Bisûnûrs m'avaient précisé que le Php n'était pas ananalyé par W3C ! Mais si dans un code Php (dans une variable) il y a du code Html, est-ce normal que ça passe au validateur ?

  6. #6
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    personnellement j'enregistrais la page fournie par mon client puis je la passais sans php à la validation W3C...
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  7. #7
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Bonjour,
    jbl59, c'est bien ce que je pensais et c'(est pour ça que je
    te demandais
    est ce que ton form est directement suivi d'un élément de niveau block (div, p, fieldset)?
    Les élément form ne peuvent directement contenir que des éléments de niveau block (div, p, fieldset pour l'essentiel), donc ni input, ni br.
    Le validateur t'indique les br parce que ce sont les premiers éléments inline qui apparaissent après form, si tu les supprimes, il va te dire pareil pour les LABEL.

    Le W3C valide ton code une fois interprétée par le parseur qui ne renvoit que du code HTML, quelqu'un me dira si je me trompe mais ça me semble assez logique.

    Le margin-bottom sert à donner une marge au dessous de l'input pas difficile à deviner.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    personnellement dans ces cas là j'utilise un fieldset ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Les élément form ne peuvent directement contenir que des éléments de niveau block (div, p, fieldset pour l'essentiel), donc ni input, ni br.
    Je croyais que "input" faisait partie d'un "form" ???
    Pour moi, enfin je le vois comme ça, c'est plus logique sinon le formulaire ne sert à rien.
    J'ai peut-être mal interprété ce que tu m'as dit !!!!

    Citation Envoyé par Erwan31 Voir le message
    Le validateur t'indique les br parce que ce sont les premiers éléments inline qui apparaissent après form, si tu les supprimes, il va te dire pareil pour les LABEL.
    En définitive, il ne dois y avoir aucun <br> dans un formulaire pour qu'il soit validé ?
    C'est ce que j'ai compris.

    Citation Envoyé par Erwan31 Voir le message
    Le W3C valide ton code une fois interprétée par le parseur qui ne renvoit que du code HTML, quelqu'un me dira si je me trompe mais ça me semble assez logique.
    Là, tu en connais plus que moi, mais si tu le dis, je pense que tu as raison :

    Citation Envoyé par Erwan31 Voir le message
    Le margin-bottom sert à donner une marge au dessous de l'input pas difficile à deviner.
    Là, je commence à comprendre parce que dans ma petite tête, je voyais "margin-bottom" comme servant à mettre un écart à partir du bord de la page, ici en bas.

    J'avais du mal à définir cette fonction comme tu me l'as écrit.
    J'ai essayé mais c'est pas ça.

    En tout cas, un grand merci de ton aide.

  10. #10
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Bonsoir,
    est ce que ton form est directement suivi d'un élément de niveau block (div, p, fieldset)?
    Les br ne sont pas fait pour créer des espacement..., utiliser un display:block avec un margin-bottom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="Envoyer" value="Envoyer" style="display:block; margin-bottom:...px" />
    Bonjour Erwan31,

    J'ai fait exactement comme tu m'as dit et ça a été validé sans problème.

    Pour cela, c'est résolu, mais je suppose que je vais encore avoir besoin de tes lumières, mais on verra par la suite !

    Merci encore de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [W3C] Validation W3C - erreurs
    Par Fabster dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/08/2006, 16h01
  2. [W3C] Validation W3C : erreur bizarre
    Par laurentdusseau dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/05/2006, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo