11544 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je voudrai absolument executer une fonction javascript lorsque l'on choisie une valeur dans une liste déroulante (pour mon moteur de rechercher -> http://www.nautiljon.com/page/recherche.php ), car cela permet de relancer la recherche suivant les catégories sans avoir à modifier le texte saisie. Le problème est que l'attribu onChange est pas valide XHTML 1.0 Strict. J'aurai voulu donc savoir si y'avais pas moyen de faire une séparation du comportement et de la structure comme pour CSS quoi avec l'id de ma liste déroulante par exemple.
Ca m'arrangerai beaucoup Smiley smile

Merci.
Modifié par Nautiljon (23 Mar 2005 - 15:35)
Utilises onchange (en minuscules)

Sinon au passage, tu as une erreur dans la validation, tu dois fermer </p> avant d'ouvrir <form> Smiley cligne
Modifié par Elentar (23 Mar 2005 - 15:07)
Ah huhu o_o je pensais pas que c'était aussi simple lol, j'était près a recevoir une methode pour separer le comportement et la structure !
B'ha si ça marche tant mieux. Merci Smiley cligne
Nautiljon a écrit :
j'était près a recevoir une methode pour separer le comportement et la structure !

Ben ... fondamenatelement, ce ne serait pas un e mauvaise idée Smiley cligne
B'ah oui, ce serait même mieux de pouvoir attribuer des comportements comme on attribu un style en CSS, le code source serait que plus clair et la séparation meilleur. Smiley smile
Interessant cet article, j'ai essayer de l'appliquer à mon site avec le script que tu m'a donné mais ça ne fonctionne pas, j'ai essayer avec un getElementByTagName sans succès, que le script soit dans ma page ou dans un fichier js lié. Pourtant dans l'article de pompage.net ça à l'air de fonctionner :S
Probablement parce que l'élément dont l'id est "cat" n'existe pas au moment de l'appel du script. Donc il faut l'appeler après le chargement de la page (onload). Place ça dans le head ou dans un fichier js externe et ça devrait rouler :
function initOnchange() {
    document.getElementById('cat').onchange=loadDataRecherche;
}

window.onload=initOnchange;


Sinon donne-nous au moins l'erreur.
Yeah ! It rocks Smiley biggrin
Au début ça fonctionnait pas, j'ai virer le onload="window.defaultStatus='Ohayo'; sur mon Body et paf ça marche Smiley cligne

Et pus de onchange dans mon code source, ni vu ni connu ^^


Merciiiiiiii Smiley jap c'est super ! dès que je peu je ferai comme ça now Smiley smile

Juste une tite question, si j'ai besoin de lancer plusieurs fonction dans le onload, ça se passe comment ?
Il y a une solution dans un des liens donnés dans l'article de Pompage dont l'url est données plus haut.

J'ai pas testé mais apparemment il faut créer cette fonction :
function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}


Et après tu peux appeler autant de fonctions que tu veux sur le onload de cette manière :
addEvent(window, 'load', fonction1);
addEvent(window, 'load', fonction2);
...