120

J'ai quelque chose d'étrange : quand je teste mse pages en local, tous mes textes sont à la bonne taille. Si je les regarde en ligne, voilà que le texte dans les tableaux ne respecte pas mon font-size: small que j'ai défini pour body. C'est pas un problème en soi, je copie la propriété dans la CSS, mais normalement, il ne devrait pas se comporter comme il le fait quand je visionne ma page en local ?
[Edit] Je viens en plus de me rendre compte que seule la police générale (simplement définie sans-serif) ne respecte pas la taille ; du texte dans des balises <span>...</span> en police serif s'affiche de la bonne manière... confus

[Edit 3] Suppression des liens vers les images fournies, supprimées de Mirari
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

121

J'ai à nouveau une question.
J'essaie d'insérer une image à l'aide de :before - oui, je sais, ça ne vas pas s'afficher avec IE, mais c'est pas un problème - et que celle-ci dépasse de manière uniforme en-dessus et en-dessous du texte qui la suit. Mais j'ai beau essayer avec vertical-align et line-height, je n'arrive pas à m'en sortir. Est-ce que quelqu'un aurait une solition pour moi ? Merci
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

122

Re-bonjour, un petit up au passage… (./121)
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

123

C'est pénible les "up", surtout quand on a le topic dans ses sujets. Poster une partie de ton code CSS aurait pu être utile pour proposer des solutions, aussi. Essaie position:relative; et top:-50px;.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

124

Zephyr (./123) :
C'est pénible les "up", surtout quand on a le topic dans ses sujets.

Je me le tiendrai pour dit.

Du coup, mes excuses à tout le monde

Malheureusement Zephyr, ce que tu me proposes ne fonctionne pas.

Bon, j'ai fini par tester avec le "Tryit Editor" du W3C, et je constate que vertical-align dans la pseudo-classe strong:before fonctionne chez eux. Et comme un imbécile, j'ai pas pensé à utiliser les valeurs en pourcentage négatif - je croyais que ce n'était pas accepté - qui m'ont permis de régler le problème. Ça va faire moche en zoomant quand-même, mais c'est mieux que rien.

"Cherche sept fois les mots-clés dans Google avant de poster" - proverbe de nerd de forum.

[Edit] J'avais pas pensé que vertical-align: middle; n'aurait pas trop de sens pour une balise inline tripaf


10-07-2008

Je suis en train de remplacer les tableaux que j'utilisais par des div (question de référencement par nos amis les moteurs de recherche), et j'essaie de me faire une pseudo-galerie. Le problème est que je n'arrive pas à la centrer. En cherchant un peu, j'ai vu qu'il fallait s'amuser en jouant avec la position…
Ce qui est bizarre, c'est que les trois divs consécutifs (affichés avec display: inline;) contenant les versions du programme, d'AMS supportée et la langue se centrent bien, mais la galerie elle-même, je n'arrive pas, malgré le fait de préciser text-align: center pour le div.Gallery. Quelqu'un aurait une idée de pourquoi ces trois blocs se centrent et pas la galerie entière ? Est-ce un bug de Firefox que de les centrer ?

tromb Joint : CSS
tromb Joint : Page HTML

[Edit] lien exemple, pour remplacer les fichiers joints

[Edit] Problème quasi réglé suite à l'utilisation de la propriété CSS display: table : un élément seul par ligne dans la galerie, et celle-ci sera centrée, mais si deux éléments ou plus doivent se placer sur une ligne, pas moyen…


09-09-2008

1
squale92 (./79) :
Avec ton include("pages/$add.html"), fais attention à ce que contient $add, par contre : c'est une variable PHP, qui sera évaluée...=> Fais attention à ce que personne ne puisse mettre ce qu'il veut dedans (genre si elle provient d'une donnée passée en URL)

Est-ce que ce problème survient même s'il y a une partie de l'adresse qui figure en dur dans le code PHP de la page, c'est-à-dire pages/ et .html qui s'ajoutent forcément au contenu de $add ?

2
Comment se fait-il que, sur deux pages à la structure similaire, les balises div soient de la taille précisée, tandis que sur la troisieme, le bloc est moins large ? Surtout que sur une parmi celles qui fonctionnent, il n'y a rien qui force le bloc à être à sa taille maximale…

Première et seconde pages qui fonctionnent, et l'autre
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

125

Bon, bonjour tout le monde, un up peut-être pas très malin, mais vu que ça doit faire facile une année que j'édite et que plus personne ne vient…

Donc, le nouveau problème du jour : j'ai trois formulaires sur mon site. Afin d'éviter d'éventuelles surprises, je contrôle les entrées avec du JavaScript.
Un de mes formulaires fonctionne, mais pas les deux autres, alors qu'ils ont quasiment les mêmes structures. Je joins les scripts et codes à titre d'étude.
> </body> </html>Celui qui marche : <!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" lang="fr" xml:lang="fr"> <head>      <title>Formulaire de contact</title>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <link rel="stylesheet" type="text/css" href="../style/screen.css" title="Design" />      <link rel="stylesheet" type="text/css" href="../style/print.css" media="print" />      <script type="text/javascript" src="../scripts/javascript/forms.js"></script> </head> <body> <div id="Main">      <div id="Header"> <?php      include ('header.xml'); ?>           </div>      <div id="MenuBar"> <?php      include ('menuBar.xml'); ?>           </div>      <div id="Content"> <?php      include ("../scripts/php_classes/SQLLink.class.php");      $cnx = new SQLLink();      $raw = $cnx->lastQuery("SELECT phoneNumber FROM UserData WHERE idUser = 1");      $info = $cnx->asFetch($raw);      $phone = $info["phoneNumber"]; ?>           <h1>Nous contacter</h1>           <p>Une question quant à nos offres ? Besoin de renseignement plus précis ? Vous pouvez utiliser les coordonnées ci-dessous ou le formulaire de contact en ligne pour faire parvenir votre message.</p>           <p>Natel : <?php echo $phone; ?> du lundi au samedi, de 10:00 à 20:00 (<em>Merci de respecter ces horaires</em>)</p>           <p>Envoyer un m@il</p>           <form id="Contact" class="Formulaire" method="post" action="#" onsubmit="return(verifyForm(this));">                <p>                     <input type="hidden" name="Obligatory" value="Nom,Prenom,Natel,E-mail,Message" />                     <label for="Nom" accesskey="N">Nom :</label>                     <input type="text" name="Nom" id="Nom" value="" />                </p>                <p>                     <label for="Prenom" accesskey="P">Prénom :</label>                     <input type="text" name="Prenom" id="Prenom" value="" />                </p>                <p>                     <label for="Natel" accesskey="H">Natel :</label>                     <input type="text" name="Natel" id="Natel" value="" />                </p>                <p>                     <label for="Email" accesskey="E">E-m@il :</label>                     <input type="text" name="Email" id="Email" value="" />                </p>                <p>                     <label for="Message" accesskey="M">Message :</label>                     <textarea name="Message" id="Message" cols="36" rows="10"></textarea>                </p>                <p><input type="submit" name="submit" value="Envoyer" /></p>           </form>      </div>      <div id="Footer"> <?php           include ("footer.xml"); ?>      </div> </div (contact.php)
> </div> </body> </html>Ceux qui ne marchent pas : <?php      require_once("../scripts/session-test.inc"); ?> <!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" lang="fr" xml:lang="fr"> <head>      <title>Ajouter un cours de sensibilisation</title>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <link rel="stylesheet" type="text/css" href="../style/screen.css" title="Design" />      <link rel="stylesheet" type="text/css" href="../style/print.css" media="print" />      <script type="text/javascript" scr="../scripts/javascript/forms.js"></script>      <script type="text/javascript" src="../scripts/javascript/adder.js"></script> </head> <body> <div id="Main">      <div id="Header"> <?php      include ('header.xml'); ?>           </div>      <div id="MenuBar"> <?php      include ('menu_admin_403.php'); ?>           </div>      <div id="Content">           <h1>Ajouter un cours de sensibilisation</h1>           <noscript><p>Impossible de faire fonctionner JavaScript sur cet ordinateur. Cette page est inutile si vous voyez ce message</p></noscript>           <form method="post" action="getForm.php" onsubmit="return(verifyForm(this));">                <p>                     <input type="hidden" name="Obligatory" value="Titre" />                     <label for="Titre" accesskey="t">Titre du cours : </label>                     <input type="text" name="Titre" id="Titre" value="" />                </p>                <p id="Dates"></p>                <p><input type="button" id="AddDate" value="Ajouter une date pour ce cours" onclick="addDate();" /></p>                <p><input type="submit" value="Valider" /></p>           </form>      </div>      <div id="Footer"> <?php      include ('footer.xml'); ?>      </divdiv> </body> </html> (sensi_ajout.php) et <?php      require_once("../scripts/session-test.inc"); ?> <!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" lang="fr" xml:lang="fr"> <head>      <title>Ajouter une ou plusieurs photo(s)</title>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <link rel="stylesheet" type="text/css" href="../style/screen.css" title="Design" />      <link rel="stylesheet" type="text/css" href="../style/print.css" media="print" />      <script type="text/javascript" scr="../scripts/javascript/forms.js"></script>      <script type="text/javascript" src="../scripts/javascript/adder.js"></script> </head> <body> <div id="Main">      <div id="Header"> <?php      include ('header.xml'); ?>           </div>      <div id="MenuBar"> <?php      include ('menu_admin_403.php'); ?>           </div>      <div id="Content">           <h1>Ajouter une ou plusieurs photo(s)</h1>           <noscript><p>Impossible de faire fonctionner JavaScript sur cet ordinateur. Cette page est inutile si vous voyez ce message</p></noscript> <?php      include("../scripts/php_classes/SQLLink.class.php");      $cnx = new SQLLink();      $raw = $cnx->lastQuery("SELECT * FROM Album");      $albums = $cnx->mAsFetch($raw); ?>           <form method="post" action="getForm.php" enctype="multipart/form-data" onsubmit="return(verifyForm(this));">                <p id="replace">                     <input type="hidden" name="Obligatory" value="albumChoice" />                     <label for="albumChoice">Album à modifier : </label>                     <select name="albumChoice" id="albumChoice" onChange="replace();">                          <option value="default">-- Veuillez sélectionner SVP --</option> <?php      if (!empty($albums)) { // Il y a au moins un album ?>                          <optgroup label="Albums existants"> <?php           foreach($albums as $album) { ?>                               <option value="<?php echo $album["title"]; ?>"><?php echo str_replace("_", " ", $album["title"]); ?></option> <?php           } ?>                          </optgroup> <?php      } ?>                          <optgroup label="Nouvel album">                               <option value="New">Créer un nouvel album</option>                          </optgroup>                     </select>                </p>                <p id="Photos"></p>                <p><input type="button" id="AddPhoto" value="Ajouter une photo pour cet album" onclick="addPhoto();" /></p>                <p><input type="submit" value="Valider" /></p>           </form>      </div>      <div id="Footer"> <?php      include ('footer.xml'); ?>      </div> </ (photos_ajout.php)
     }      return resultat; }Pour ce qui est du JavaScript : window.onload = function() {      verifyForm(); } /**  * Vérifie les entrées d'un formulaire  */ function verifyForm() {      var formulaires = document.getElementsByTagName("form");      var limit1 = formulaires.length;      for (var j = 0; j < limit1; j++) {           formulaires[j].onsubmit = function() {                var inputs = this.elements;                var limit2 = inputs.length;                for (var i = 0; i < limit2; i++) {                     var input = inputs[i];                     //Extraction des champs obligatoires                     var critere;                     if (input.type == "hidden" && input.name == "Obligatory") {                          var tab_obl = new Array();                          var limite;                          if (input.value.indexOf(",") >= 0) {                               tab_obl = input.value.split(",");                               limite = tab_obl.length;                          } else {                               tab_obl = input.value;                               limite = 1;                          }                     }                     //Si un champ est vide                     if (input.value == "") {                          alert("Le champ " + input.name + " est vide");                          input.focus();                          return false;                     } else {                          //Si c'est un mail                          if (input.name == "Email" && !is_email(input.value)) {                               alert("L'adresse e-mail est invalide");                               input.focus();                               return false;                          } else if (input.name == "albumChoice") { // Dans le cas d'un select                               if (input.options[input.selectedIndex].value == "default") {                                    alert("Veuillez choisir un album pour ces photos");                                    input.focus();                                    return false;                               }                          }                     }                }                return true;           };      } } /**  * Vérification d'une adresse e-m@il par expression régulière  */ function is_email(mailAdd) {      var reg = /^[\w.-]+@[\w.-]+\.\w{1,4}$/      var reg2 = /[.@]{2,}/      return ((reg.exec(mailAdd) != null) && (reg2.exec(mailAdd) == null)); } /**  * Vérification d'une adresse url  */ function is_url(url) {      var resultat = true;      var invalid_char = "²~#'{([|`^)]}°§*";      var deb_url = "http://";      var nbPoint = 0;      var nbrcar = url.length;      if (nbrcar < 11)           resultat = false;      for (var i = 0; i < 7; i++){           if(url.substr(i,1) != deb_url.substr(i,1))                resultat = false;      }      for (var i = 0; i < nbrcar; i++){           var car = url.substr(i,1);           if (invalid_char.indexOf(car) > 0){                resultat = false;           }           if (car == ".") {                var carAfter = "";                var carBefore = "";                if ((i-1) >= 0) {                     carBefore = url.substr((i-1),1);                }                if ((i+1) < nbrcar) {                     carAfter = url.substr((i+1),1);                }                if (i > 7 && i < (nbrcar-2) && !(carBefore == ".") && !(carAfter == ".") && !(carBefore == "-") && !(carAfter == "-") && !(carBefore == "_") && !(carAfter == "_")) {                     nbPoint++;                }                else {                     resultat = false;                }           }      }      if ((nbPoint < 2) || (url.substr(7,1) == ".") || (url.substr(7,1) == "-") || (url.substr(7,1) == "_") || (url.substr((nbrcar-1),1) == ".") || (url.substr((nbrcar-1),1) == "-") || (url.substr((nbrcar-1),1) == "_")) {           resultat = false; (forms.js)



Pour les mêmes deux derniers formulaires, j'utilise un autre srcipt pour des entrées multiples. Une fois de plus, sur l'ajout de photos, ça fonctionne, mais pas sur l'ajout de dates.
t.getAll[id];      }      return content; }Le script qui gère l'addition de ces champs : var fieldCounter = null; window.onload = function() {      fieldCounter = -1; } /**  * Attribue un comportement aux éléments recherchés  * @deprecated Mettre l'appel aux fonctions dans le code XHTML, car elles ne sont utilisées que dans deux pages  */ function behavior() {      var element = getById("AddPhoto");      if (element)           element.onclick = function() {                addPhoto();           };      element = getById("AddDate");      if (element)           element.onclick = function () {                addDate();           };      element = getById("albumChoice");      if (element)           element.onchange = function () {                if (element.options[element.selectedIndex].value == "New") {                     replace();                }           }; } /**  * Ajoute tous les champs pour l'upload d'une photo dans la balise <p class="Photos"></p>  */ function addPhoto() {      fieldCounter += 1;      var field = getById("Photos");      var block = '<input type="file" name="file' + fieldCounter + '" id="file' + fieldCounter + '" />\n\t\t\t\t<label for="desc' + fieldCounter + '" >Description</label>\n\t\t\t\t<input type="text" name="desc' + fieldCounter + '" id="desc' + fieldCounter + '" />\n\t\t\t\t<label for="alt' + fieldCounter + '">Texte alternatif</label>\n\t\t\t\t<input type="text" name="alt' + fieldCounter + '" id="alt' + fieldCounter + '" />\n\t\t\t\t<br />\n\t\t\t\t';      field.innerHTML = field.innerHTML + block; } function replace() {      var field = getById("replace");      var content = field.innerHTML;      var position = content.indexOf("</label>") + 6; // + 5 pour la mise en forme, + 1 pour éviter d'avoir à ajouter à la ligne suivante :)      content = content.substr(0, position);      var block = '<input type="text" name="albumChoice" id="albumChoice" />\n\t\t\t'      content = content + block;      field.innerHTML = content; } /**  * Ajoute tous les champs pour l'insertion d'une date dans la balise <p class="Dates"></p>  */ function addDate() {      fieldCounter += 1;      var field = getById("Dates");      var block = '<label for="date' + fieldCounter + '">Date</label>\n\t\t\t\t<input type="text" name="date' + fieldCounter + '" id="date' + fieldCounter + '" />\n\t\t\t\t<label for="start' + fieldCounter + '">Heure de début</label>\n\t\t\t\t<input type="text" name="start' + fieldCounter + '" id="start' + fieldCounter + '" />\n\t\t\t\t<label for="length' + fieldCounter + '">Durée</label>\n\t\t\t\t<input type="text" name="length' + fieldCounter + '" id="length' + fieldCounter + '" />\n\t\t\t\t<br />\n\t\t\t\t';      field.innedHTML = field.innerHTML + block; } /**  * Simplifie le problème getElementById("id") et getAll["id"]  */ function getById(id) {      var content;      if (document.getElementById(id)) {           content = document.getElementById(id);      } else if (document.getAll[id]) {           content = documen (adder.js)

Merci d'avance



[Edit] OK, ça m'apprendra à faire trois heures pour configurer IIS 7 et coder ensuite. Pour ce qui est des problèmes de ce post, ils sont résolus, merci.
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

126

Ca ne va pas répondre à ton problème si tu veux absolument utiliser du JavaScript, mais ça fait vraiment trop longtemps que j'ai plongé mon nez dedans. Je vais regarder, mais je trouve plus simple de vérifier sur la page donnée en argument à post dans la balise <form> que les champs obligatoires sont bien remplis, et si ce n'est pas le cas, un coup de :
<script type="text/javascript">
this.location = history.go(-1);
</script>

(Je ne suis pas sûr que ça marche, mais tu peux spécifier une adresse absolue entre guillemets.)
Sinon, un
header('Location: URL absolue
');
(entre balises PHP) fonctionnera tant qu'il n'y aura pas de code HTML avant la ligne contenant cette instruction.

Ca me rappelle que j'ai un jeu à finir, tout ça #rollingeyes#

127

Il faut obligatoirement faire les vérifications dans le code côté serveur, pas dans le JavaScript côté client, sinon elles peuvent se contourner!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

128

Merci FireHunter, mais comme j'ai précisé en éditant le post, c'est résolu, merci grin
Une histoire de mauvaise définition de ma fonction pour la première partie, et un bête problème de copier-coller pour la seconde. Mais ta solution JavaScript possède l'avantage de revenir dans l'historique, donc peut-être de récupérer le formulaire avec les données entrées le cas échéant… Je vais creuser ça
Je fais les vérifications côté serveur Kevin, mais j'aimerais savoir s'il existe une méthode valable autre que les coder en dur, parce que ça devient vite fastidieux ?
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

129

tu devrais utiliser un framework, tu te prendrais beaucoup moins la tete, exemple de code avec jquery :

[source=js] $("#clickclick").click(function()
{ var ok=1;
var outurl = 'save.php?z';
$(":input").css('background-color','#ffffff');

$(":input").each(function()
{ var name = $(this).attr('name');
var value = $(this).val();

if(name == 'mail')
{ var re = /^((?sad?sad?:\w[\.\-\+]?)*)\w)+)\@((?sad?sad?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$/;
if(value.search(re) == -1) ok=0;
} else { if( (value == "") && (name != 'promo') && (name != 'detail') ) ok=0;
if(name == 'tel' || name == 'cb' || name == 'crypto') if(!isNumeric(value)) ok=0;
}

if(!ok)
{ $(this).focus(); $(this).css('background-color','#FF72A6'); return false;
}
else
{ $(this).css('background-color','#C6FFCF');
outurl += '&' + $(this).attr('name') + '=' + encodeURIComponent($(this).val());
}
});

if(!ok) return false;

$.blockUI({message: '<b>reception de<br>votre commande</b><br><br><br>si ce message reste affiché plus de 30s, actualiser la page',fadeIn: 700,fadeOut: 700});
$('#pagecontent').load(outurl,'',function(){ $.unblockUI(); });
return false;
});[/source]

pour le retour des donnees, en général, j'utilise le meme script pour le formullaire et son traitement, et dans chaque atributs 'value' des champs je prerempli avec la valeur du $_GET corespondant si il existe, comme ca si la verif n'est pas bonne, au lieu d'afficher la le code dans le cas ou tout est ok, je reaffiche simplement le code du formullaire et miracle, il à concervé toute ses données ^^
et la le mec il le pécho par le bras et il lui dit '

130

Personnellement, je pense qu'utiliser un FrameWork n'apporte rien en soi dans l'approfondissement des connaissance d'un language.
Après, chacun son avis embarrassed

131

Ca me fait penser, pendant qu'on est dans le sujet : c'est quoi la difference concrete entre du strict et transitional (xhtml1.0) ? J'ai par ailleurs remarque que le loose etait deprecated et non reconnu par le w3c validator.
avatar
納 豆パワー!
I becamed a natto!!!1!one!

132

Bon, je vais corriger avant qu'on ne voit mes bêtises grin
Strict, c'est le xhtml tel qu'il devrait exister uniquement.
Transitional, c'est la même chose, mais en autorisant encore certains balises obsolètes (genre font, center, ... ) et dont les effets sont faisables en CSS, pour faciliter le boulot des développeurs.
Frameset, c'est pareil, sauf qu'on autorise les frame.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

133

Tu fais bien ^^

134

Flanker (./132) :
avant qu'on ne voit mes bêtises biggrin.gif


Trop tard, mais je me suis reserve de faire un commentaire aussitot grin

Merci pour la reponse corrigee !
avatar
納 豆パワー!
I becamed a natto!!!1!one!

135

Personnellement, je pense qu'utiliser un FrameWork n'apporte rien en soi dans l'approfondissement des connaissance d'un language.
Après, chacun son avis embarrassed

j'ai jamais dit le contraire hein tongue
mais la il n'apprend pas, il produit, et avec un jolie framework on gagne en vitesse de développement et lisibilité du code,
bref on peu se concentrer sur la logique brute au lieu de galerer avec le fait de recuperer des champs ou autres

  var formulaires = document.getElementsByTagName("form");
     var limit1 = formulaires.length;
     for (var j = 0; j < limit1; j++) {
          formulaires[j].onsubmit = function() {
               var inputs = this.elements;
               var limit2 = inputs.length;
               for (var i = 0; i < limit2; i++) {
                    var input = inputs[i];
               }


vs

$(":input").each(function() 
{

}
et la le mec il le pécho par le bras et il lui dit '

136

Après faut voir comment le FrameWork est bricolé, si c'est du code bien dégueu :: embarrassed.
Mais bon j'sais pas, ça s'oublie pas le codage avec un FrameWork ? Parce que bon, je regarde, mais je fais plus de JS, et je suis plus foutu de faire un texte qui s'affiche caractère par caractère, en boucle (effet tape au clavier embarrassed)