el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 2015
-
28 juil. 2006 à 11:26
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
28 juil. 2006 à 17:20
bonjour,
voilà, pour faire simple j'ai une case de recherche qui contient par défaut le texte "Recherche", quand je clique dessus je veux que le texte s'efface seulement s'il vaut "Recherche". Ca marche niquel sous Firefox, mais partiellement sous IE.
En fait, il arrive que dans une certaine page, j'ai deux cases recherche, une sous l'id "tsearch", l'autre sous l'id "search".
Sous Firefox, le script marche pour search et tsearch, mais sous IE, cela ne marche pas pour l'id "search".
Voilà comment je procède :
dans ma jsp, voilà la case recherche "search" et l'autre case "tsearch":
_ "search" :
Voilà le code de mon javascript :
<!--
function effacerSearch () {
alert("Fonction effacerSearch");
alert("case vaut : " + document.getElementById("search").value);
if (document.getElementById("search").value=="Recherche") {document.getElementById("search").value="";}
}
function effacerTSearch () {
alert("Fonction effacerTSearch");
if (document.getElementById("tsearch").value=="Recherche") {document.getElementById("tsearch").value="";}
}
//-->
Sous firefox, le alert() de la fonction effacerSearch() renvoit "Recherche" (donc il trouve bien l'élément référencé par l'id "search", et sous IE, pour la même page ouverte, cela donne "undefined" (il ne trouve plus l'id "search") ! ! !
Ma question est la suivante : est-ce que getElemenetById marche aussi bien pour Firefox et IE ? D'ou le problème peut-il venir ?
(je suis débutant en javascript)
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 28 juil. 2006 à 11:45
bonjour,
>>est-ce que getElemenetById marche aussi bien pour Firefox et IE ?
ben, oui, heureusement, sinon,
y'a plus qu'a s'asseoir par terre et à pleurer.
et tel que c'est là ( enfin, sans les .js ! )
pas de undefined... même avec IE.
>>D'ou le problème peut-il venir ?
pas de ce qu'on voit
l'erreur est ailleurs.
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 28 juil. 2006 à 12:16
A tout hasard, tu aurais une petite fonction pour lister les éléments par "id" sous IE, comme ca je pourrais retrouver ma case, et voir la valeur qu'elle a.
Comment faire pour être sur que je pointe bien vers le bon élément ?
ps : j'ai remplacé mon javascript par ceci :
<!--
function effacerSearch () {
if (!document.all) {
alert("Mozilla | effacerSearch\nRecherche vaut : " + document.getElementById("search").value);
if (document.getElementById("search").value=="Recherche") {document.getElementById("search").value="";}
}
else {
alert("IE | effacerSearch\nRecherche vaut : " + top.frames["search"].value);
if (top.frames["search"].value=="Recherche") {document.getElementById("search").value="";}
}
}
function effacerTSearch () {
if (document.getElementById("tsearch").value=="Recherche") {document.getElementById("tsearch").value="";}
}
//-->
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 28 juil. 2006 à 12:45
ou des interactions des .js,
ou un name d'un objet = une fonction
ou ... dur dur à dire comme ça,
sans plus de billes.
ce qui est sûr c'est que l'erreur est ailleurs
( avec FF, doit y avoir des soucis aussi sûrement ?
pas dans les mêmes cas de figure )
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 28 juil. 2006 à 15:39
Vous allez dire que je suis lourd, mais vous ne sauriez pas comment je pourrais récupérer (alors attention aux termes, je suis newb en javascript) toutes l'arborescence des objets parents d'un objet ???
en fait, je voudrais savoir où se trouve mon objet input de type= "text" id="rsearch", pour pouvoir le récupérer sous tous les navigateurs.
Comment savoir le chemin du style : document.frame.objet1.objet2.rsearch
Sous firefox, j'utilise Firebug, et dans l'onglet DOM, je peux retrouver mes objets, mais je m'y perds, et je ne sais pas comment retrouver l'objet en question à partir de la variable 'document'
merci.
ps : mon code javascript actuel est le suivant :
<!--
function effacerSearch () {
if (!document.all) {
if (document.getElementById("rsearch").value=="Recherche") {document.getElementById("rsearch").value="";}
}
else {
if ( document.forms ["rsearch"].value == "Recherche") { document.forms ["rsearch"].value ="";}
}
}
function effacerTSearch () {
if (!document.all) {
if (document.getElementById("tsearch").value= ="Recherche") {document.getElementById("tsearch").value="";}
}
else {
if ( top.frames ["tsearch"].value == "Recherche") { top.frames ["tsearch"].value ="";}
}
}
//-->
Alors, document.frame, et top.frames plantent à l'éxécution sous IE (ce sont des tests), car ca marque : l'objet est null ou pas trouvé ou un truc dans le genre. C'est normal, c'est justement ce que je recherche ;p
merci d'avance.
(si qqln sait comment sous firebug et DOM je peux récupérer le chemin que je cherche, je suis également preneur )
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 28 juil. 2006 à 15:58
Bon, alors du nouveau. Je viens de tenter un truc. Sous firebug, j'ai cliqué sur mon input dont l'id est "rsearch". Dans la liste des propriétés de l'objet DOM, en face de form j'ai : <form id= "[object NodeList]">
je clique à gauche sur form, firebug m'envoit sur une autre fenetre où je vois ceci :
<form name="search" method="get" action="display.jsp">
donc je me dit, le formulaire dans lequel se trouve mon input s'appelle "search"
Donc, dans mon javascript, j'ai tout naturellement essayé ça, mais ca marche pas :-(
function effacerSearch () {
if (!document.all) {
if (document.getElementById("rsearch").value=="Recherche") {document.getElementById("rsearch").value="";}
}
else {
if ( document.form["search"].input["rsearch"] .value =="Recherche") {document.form["search"].input["rsearch"].value="";}
}
}
J'obtiens ça comme erreur sous IE :
Erreur: 'document.form.search' a la valeur Null ou n'est pas un objet