Auteur Sujet: [RESOLU] Autocomplete et W3C  (Lu 12594 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
[RESOLU] Autocomplete et W3C
« le: 28 octobre 2008 à 20:07:09 »
Salut,

Je souhaite utiliser le autocomplete='off' dans mes champs de formulaire tout en étant valide niveau W3C (XHTML), donc le :

<input type="text" name="Prenom" class="search" title="Entrer le pr&eacute;nom d'un combattant" AUTOCOMPLETE='OFF' />

marche mais ne passe pas la validation...

J'ai trouvé ce js qui permet de le faire :

<script type="text/javascript">   
function autoCompOff(id)
{
document.getElementById(id).setAttribute("autocomplete","off");
}
</script>

Que dois je rajouter dans mon form (onsubmit...) ou dans mes input (id='') pour que mon js soit appelé ?
« Modifié: 02 janvier 2009 à 15:11:50 par Lebanner »

Hors ligne M@x

  • Habitué
  • **
  • Messages: 108
    • Upload Images
Re : Autocomplete et W3C
« Réponse #1 le: 29 octobre 2008 à 03:27:58 »
Teste avec toutes les options...

onfocus, onchange, onkeyup, ...

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
Re : Autocomplete et W3C
« Réponse #2 le: 29 octobre 2008 à 09:36:42 »
Cela ne m'aide pas trop en fait...je met le onfocus dans le <form> ?
Et je met onfocus='quoi?'

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #3 le: 29 octobre 2008 à 09:45:53 »
Bonjour,

Hum hum hum... tout cela relève de l'expression magique "non-obstrusive JavaScript" ^^.

Déjà un petit cours sur le pourquoi du parce que (oui je sais je suis pénible en mode "donneur de leçon" ^^).
Le W3C ignore totalement tout usage de JS et donc tout attribut insérer dans le DOM (dans ton HTML). Exception faites des évènement (onclick, onfocus, ...).
Mais même ces évènements sont une abération ! En effet quand tu composes ton HTML tu dois te dissocier du JavaScript et ne plus en tenir compte : cela s'appel du javascript non-intrusif. Ainsi une personne n'ayant pas javascript ne sera pas perturbé par ces codes.
Donc la meilleure manière de faire est d'écrire les attribut pour l'usage du JS... directement avec JS !

Ainsi dans ton cas voici la solution.
Si ton DOM ressemble à:
<form id="monIDForm" method="post" action="toto.html">
<input type="text" name="Prenom" class="search" id="monIDInput" title="Entrer le pr&eacute;nom d'un combattant" />
</form>

Alors ton JS sera, en un seul temps.
Dans un script placé dans le HEAD, ta fonction actuelle avec l'appel lors de la validation du formulaire :
<script type="text/javascript">    
function autoCompOff(id)
{
document.getElementById(id).setAttribute("autocomplete","off");
}
window.onload =
function()
{
document.getElementById("monIDForm").onsubmit =
function()
{
autoCompOff("monIDInput);
return true;
}
;
}
;
</script>
(pas testé mais ça doit être ça ^^)

Et si le JS t'intéresse vraiment je te conseille l'utilisation d'une librairie, qui simplifie grandement le travaille, tel que jQuery (http://www.jquery.com/).

Bonne continuation.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
Re : Autocomplete et W3C
« Réponse #4 le: 29 octobre 2008 à 10:13:47 »
Salut,

Encore merci de ton aide !

Je met ça dans mon <head></head> /


<script type="text/javascript">   
function autoCompOff(id)
{
document.getElementById(id).setAttribute("autocomplete","off");
}
window.onload =
function()
{
document.getElementById("form_search").onsubmit =
function()
{
autoCompOff("search");
return true;
};
};
</script>


Et mon form :

<form id="form_search" method="post" action="toto.php">
<p><input type="text" name="recherche_generale" class="search2" id="search" /><br />
ex : ufc 85, chuck liddell,...</p>
<p><input type="submit" value="Chercher" class="submit" title="Cliquer pour la recherche" /></p>
</form>

Mais ça ne marche pas  :huh:

Quelle boulette ai je fait ?

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #5 le: 29 octobre 2008 à 10:43:06 »
Je pense que la boulette c'est moi qui l'ai faites ^^.
Mais pour autant que je sache cela fonctionne : http://pastebin.me/49082fdea4ce9

Je pense que je n'ai tout bêtement pas compris ce que tu voulais faire :(.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
Re : Autocomplete et W3C
« Réponse #6 le: 29 octobre 2008 à 11:30:47 »
En fait l'élément autocomplete='off' permet de ne pas avoir d'historique dans le champ input. C'est ce qui est utilisé pour les sites de paiement en ligne. Moi je ne veux pas que dans mes cases (input) il y ai une liste déroulante avec les anciennes saisies.

Avec ce bout de code ça marche nickel :


<input type="text" name="Nom" class="search" title="Entrer le nom d'un combattant" AUTOCOMPLETE='OFF' />


Mais ce n'est pas valable en W3C donc il faut opter pour une solution javascript.

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #7 le: 29 octobre 2008 à 11:37:43 »
Hum OK je n'avais effectivement pas compris.
Et merci pour le autocomplete : je ne connaissais pas sa fonction ^^ !

Déjà, pour que ça puisse éventuellement être correcte il faudrait écrire autocomplete="off" et non AUTOCOMPLETE='OFF'.
Ensuite il s'avère que cet attribut est effectivement illégal selon le W3C.

Mais la solution javascript (qui ne sera donc aps effective pour les quelques 6 à 8% d'utilisateur qui l'ont désactivé) est bien la bonne.
Il y a juste que je ne l'avais pas mise en place au bon moment :p !

Voici la solution (changer le script par) :
<script type="text/javascript">   
function autoCompOff(id)
{
document.getElementById(id).setAttribute("autocomplete","off");
}
window.onload =
function()
{
autoCompOff("search");
};
</script>

Et le tour est joué !
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Autocomplete et W3C
« Réponse #8 le: 29 octobre 2008 à 13:14:46 »
Salut,

Il va falloir attendre HTML 5 pour voir apparaître cet attribut (il est dans le working draft), même si certains navigateurs l'ont déjà implémenté (beaucoup l'ont fait ?).

Mais pourquoi vouloir interdire ce comportement ? Ca semble être pour un moteur de recherche, je pense que ça peut plutôt être très pratique.

De plus, contourner les règles d'une DTD à coup de javascript, je ne vois pas l'intérêt. OK la page sera valide, mais la DTD non respectée. Alors autant assumer ses choix, utiliser l'attribut interdit et tant pis pour la validation. Perso, j'trouve ça plus "propre".
« Modifié: 29 octobre 2008 à 13:21:10 par boulaneige »
* Petite scarabette *

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #9 le: 29 octobre 2008 à 14:17:42 »
Salut boulaneige !
Ça fait un moment qu'on ne t'as pas vue trainer par ici :).

Assez d'accord sur le pourquoi du parce que interdire ce comportement.
L'utilisateur devrait être libre de choisir si oui ou non il veut cette fonctionnalité.

Pour la suite je ne me suis pas plus penché sur l'autocomplete.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Autocomplete et W3C
« Réponse #10 le: 29 octobre 2008 à 15:44:31 »
<hs>Je viens quasiment tous les jours, mais j'interviens très peu vu que généralement j'comprends même pas la question : php, sql, serveur toussa, pas mon truc :-(</hs>

Pour revenir à l'attribut autocomplete, je crois que c'est Opera qui en est à l'origine. Sinon, en plus de HTML 5, il fait partie du WD de XHTML 2 :
http://www.w3.org/TR/xhtml2/Overview.html

Il y a un WD sur les formulaires :
Web Forms 2.0 : http://www.whatwg.org/specs/web-forms/current-work/#the-autocomplete


* Petite scarabette *

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #11 le: 29 octobre 2008 à 16:51:00 »
<hs>RRrOooo fais pas ta majorete :D</hs>

Hum donc attendons ces WD, déjà très attendu pour ma part :).
Mais ce n'est pas pour de suite :(.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Autocomplete et W3C
« Réponse #12 le: 29 octobre 2008 à 18:15:08 »
grrrrrrrrrr [censure], je ne retrouve plus les "prévisions" de Karl Dubost (La Grange) au sujet de l'emploi de HTML 5, je viens de fouiller les listes auxquelles je suis abonnée sans résultat  :angry:

De mémoire (je vais donc dire une connerie), du working draft à la version définitive puis l'implémentation (j'oublie des étapes), faut compter 2012... J'me demande même si c'était pas encore plus tard...

Enfin bref, c'est pas pour demain !
* Petite scarabette *

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Autocomplete et W3C
« Réponse #13 le: 29 octobre 2008 à 18:34:38 »
Ouep c'est ce qu'il me semblait aussi ^^.
Ils nous le mijotent le 5...
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/