HTML avec javascript non valide W3C

Signaler
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008
-
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
-
Bonjour,


J'arrive à la fin d'une opération de mise en conformité W3C de mes sites, mais une dernière difficulté se présente, à laquelle je n'ai pas encore trouvé de solution (peut être la synthaxe).


Avec le code suivant, non valide W3C,  j’offre aux visiteurs la possibilité de faire une recherche à partir de mots clés dans une page XHTML 1.0 Transitional.


Le javascript associé est placé dans le head :


<script language="JavaScript"type="text/javascript"src="recherche1.js"></script>



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 





 =========




<form name="search1" onSubmit="return findInPage1(this.motcle.value);">


Rechercher : Evénement




<select onFocus="nbSearch1=0; if (this.value=='Mot-clé') {this.value=''}" name="motcle">


<option value="&nbsp;">


<option value="naissance">naissance


<option value="anniversaire">anniversaire


<option value="baptême">baptême


<option value="communion">communion



<option value="mariage">mariage





</select>











La première erreur donnée par le W3C est la suivante




1       

<form name="search1" onSubmit="javascript: return findInPage1(this.motcle.







 







You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).





This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.





How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the element to incorporate flash media in a Web page, see the FAQ item on valid flash.










Merci par avance pour votre aide.


Patrick MARA
marap

18 réponses

Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

C'est claire :"You have used the attribute named above in your document,..." utilises ID :
<form name="search1" ID="search1" onSubmit="javascript: return findInPage1(...

ou

"This error is often caused by incorrect use of the "Strict" ..."
Tu as demandé un test en sélectionnant Strict alors que ton document est Transitionnal.

Nickadele
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bonjour,

>>"This error is often caused by incorrect use of the "Strict" ..."

>>Tu as demandé un test en sélectionnant Strict alors que ton document est Transitionnal.

Ce qui voudrait dire que son doctype est pas bon car le test se fait en regardant le doctype de la page (sauf dans les cas de sélection manuel)

>><form name="search1" onSubmit="return findInPage1(this.motcle.value);">
Ici ça me plaît pas, enfin le return ne me plaît pas il n'a pas sa place ici...

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

<fon></fon>
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Bonjour et merci pour votre réponse.

Mon doctype me semble pourtant valable pour du Transitional ,

<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 /Transitional/EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

marap
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Veuillez m'excuser j'avais oublié de casser les liens

<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

marap
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

marap,

ok pour ton doctype, mais lorsque tu fais ton test de norme W3C tu dois laisser soit en autodetect soit définir également Transitional et non choisir le Strict.

Nickadele
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Le test sur W3C est bien fait en Transitional

marap
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Alors si t'es bien en Transitional, il ne peu pas te dire que t'as choisi le Strict !
Peux-tu donner le path de la page en question stp !

Nickadele
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

<?xml version= "1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Chronologie 2008</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/javascript">
// JavaScript Document
// Source http://www.toutjavascript.com
// D'après le script original de MHall


var nbSearch1=0;


function findInPage1(str1) {
  var txt, i, found;
  if (str1=="") return false;


  if ((document.layers)||(window.sidebar)) {
    if (!window.find(str1)) {
   alert("Fin de page atteinte.\n"+'"'+str1+'" trouvé '+nbSearch1+" fois.");
   while(window.find(str1, false, true)) {nbSearch1++;}
 }
    else
      nbSearch1++;
    if (nbSearch1 == 0)
      alert('"'+str1+'" est introuvable');
  }


  if (document.all) {
    txt = window.document.body.createTextRange();
    for (i = 0; i <= nbSearch1 && (found = txt.findText(str1)) != false; i++) {
      txt.moveStart("character", 1);
      txt.moveEnd("textedit");
    }
    if (found) {
      txt.moveStart("character", -1);
      txt.findText(str1);
      txt.select();
      txt.scrollIntoView();
      nbSearch1++;
    } else {
      if (nbSearch1 > 0) {
      alert("Fin de page atteinte.\n"+'"'+str1+'" trouvé '+nbSearch1+" fois.");


        nbSearch1 = 0;
        findInPage1(str1);
      } else {
     alert('"'+str1+'" est introuvable');
   }
    }
  }


  return false;
}


// Fin du script
</script>
</head>

<form name="search1" id="search1" onsubmit="javascript: return findInPage1(this.motcle.value);">
  Rechercher : Evénement
  <select onfocus ="javascript: nbSearch1=0; if (this.value=='Mot-clé') {this.value=''}" name="motcle">
    <option value="&nbsp;"> </option>
    <option value="naissance">naissance </option>
    <option value="anniversaire">anniversaire </option>
    <option value="baptême">baptême </option>
    <option value="communion">communion </option>
    <option value="études">études </option>
    <option value="mariage">mariage </option>
    <option value="job">job </option>
    <option value="fête">fête </option>
    <option value="vacances">vacances </option>
    <option value="voyage">voyage </option>
    <option value="visite">visite </option>
    <option value="week end">week end </option>
    <option value="décès">décès </option>
  </select>
 
</form>
naissance, naissance, naissance

</html>

marap
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bon alors petit cours de javascript, quan don appelle une fonction via onsubmit la fonction renvois true ou false si elle revoit true on valide la formulaire si elle renvois false on le valide pas. Enfin je veux dire c'est la fonction qui renvois true ou false et ça ne fait pas à l'appel de la fonction comme tu le fait.
<form name="search1" id="search1" onsubmit="javascript: return findInPage1(this.motcle.value);">

ici je pense qu'il y a un problème avec les quotes
  <select onfocus="javascript: nbSearch1=0; if (this.value=='Mot-clé') {this.value=''}" name="motcle">

et pour finir si tu veux que le w3c valide ta page il faut mettre les cdata

<script language="JavaScript" type="text/javascript">
// JavaScript Document
// <![CDATA[
 les fonctions....
// ]]>
// Fin du script
</script>
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

<fon></fon>
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
>>ici je pense qu'il y a un problème avec les quotes
>>  <select onfocus="javascript: nbSearch1=0; if (this.value=='Mot-clé') {this.value=''}" name="motcle">
En faite j'ai rien dis ^^ c'est juste

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

<fon></fon>
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Béotien en Javascript, comment faire pour appeler correctement une fonction.

Merci pour le


// <![CDATA[
 les fonctions....
// ]]>


qui améliore la conformité au W3C, il ne subsiste maintenant que cette erreur.


Line 61, Column 95: required attribute "action" not specified.
…turn findInPage1(this.motcle.value);" > 
 

The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.

Typical values for
type
are
type ="text/css"
for
<style>
and
type="text/javascript"
for
<script>
.

marap
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
traduction : required attribute "action" not specified.
l'attribut action est requis et n'est pas spécifié, je pense que c'est assez clair....

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

<fon></fon>
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Ce n'est pas assez clair pour moi, merci de préciser le code

marap
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Une balise a des attributs dont l'attribut est action après il faut savoir quel balise peut avoir cet attribut et que mettre dans sa valeur, je suis pas la pour faire ton boulot si tu connais pas le html apprend le avant de vouloir faire quelque chose qui respecte les normes.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

Wii + nbx jeux à vendre, contactez moi par mp.

<fon></fon>
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

J'ai apprécié votre aide jusqu'à maintenant mais votre dernière réponse n'est pas à la hauteur de la votre compétence, je sais ce qu'est une balise et ses attributs, mais dans le cas présent je ne vois pas ce qu'il faut faire.

Le peu que je sais, c'est à mon ignorance que je le dois. (Sacha GUITRY)

marap
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Oui mais les compétences s'acquièrent elles aussi. Et pour les acquérir des fois il faut savoir chercher tout ne tombe pas du ciel je suis sure que quels mots sur google vous donnerons la réponse.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

Wii + nbx jeux à vendre, contactez moi par mp.

<fon></fon>
Messages postés
9
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
9 juillet 2008

Ajouter un attribut vide n'est pas une évidence, voici le code conforme au W3C 

Merci  Elodie 
marap

<?xml version= "1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Recherche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/javascript">
// JavaScript Document
// Source http://www.toutjavascript.com
// D'après le script original de MHall
//<![CDATA[


var nbSearch1=0;


function findInPage1(str1) {
  var txt, i, found;
  if (str1=="") return false;


  if ((document.layers)||(window.sidebar)) {
    if (!window.find(str1)) {
   alert("Fin de page atteinte.\n"+'"'+str1+'" trouvé '+nbSearch1+" fois.");
   while(window.find(str1, false, true)) {nbSearch1++;}
 }
    else
      nbSearch1++;
    if (nbSearch1 == 0)
      alert('"'+str1+'" est introuvable');
  }


  if (document.all) {
    txt = window.document.body.createTextRange();
    for (i = 0; i <= nbSearch1 && (found = txt.findText(str1)) != false; i++) {
      txt.moveStart("character", 1);
      txt.moveEnd("textedit");
    }
    if (found) {
      txt.moveStart("character", -1);
      txt.findText(str1);
      txt.select();
      txt.scrollIntoView();
      nbSearch1++;
    } else {
      if (nbSearch1 > 0) {
      alert("Fin de page atteinte.\n"+'"'+str1+'" trouvé '+nbSearch1+" fois.");


        nbSearch1 = 0;
        findInPage1(str1);
      } else {
     alert('"'+str1+'" est introuvable');
   }
    }
  }


  return false;
}
// ]]>
// Fin du script
</script>
</head>

<form name="search1" id="search1" onsubmit="javascript : return findInPage1(this.motcle.value);" action="">
  Rechercher : Evénement
  <select onfocus ="javascript: nbSearch1=0; if (this.value=='Mot-clé') {this.value=''}" name="motcle">
    <option value="&nbsp;"> </option>
    <option value="naissance">naissance </option>
    <option value="anniversaire">anniversaire </option>
    <option value="baptême">baptême </option>
    <option value="communion">communion </option>
    <option value="études">études </option>
    <option value="mariage">mariage </option>
    <option value="job">job </option>
    <option value="fête">fête </option>
    <option value="vacances">vacances </option>
    <option value="voyage">voyage </option>
    <option value="visite">visite </option>
    <option value="week end">week end </option>
    <option value="décès">décès </option>
  </select>
 
</form>
naissance, naissance, naissance

</html>
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
C'est un peu une évidence quand le message d'erreur est "l'attribut action est requis" enfin bref je vois que vous vous en êtes très bien sortis en cherchant
De rien Patrick.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

<fon></fon>