Problème JS simple !

Fermé
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 - 10 mai 2009 à 21:03
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 11 mai 2009 à 13:28
Bonjour,

programmant en Java script depuis plus d'un ans, je n'arrive pas à déceler une erreur toute bête qui, ça se trouve ne saute pas au yeux :s
Voici le code:

<div id="phrase">TITRE</div>

<a href="#" onclick="document.getElementById('nom').value = document.getElementById('phrase').innerHTML" >Changer le titre</a>

<input type="text" id="nom" />

<input type="button" onclick="changeName(document.getElementById('nom').value)" />


Et voici la simple fonction Javascript

<script type="text/javascript">
function changeName(valeur){
     alert(valeur);
}
</script>


Bon j'ai allégé au maximum mais en gros, mon alert() retourne toujours la valeur tu div, donc 'TITRE' mais après changement du texte dans le INPUT!!!!
je ne vois pas ou est le problème !

HELP!!!

A+

Gaerebut
A voir également:

6 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
11 mai 2009 à 00:22
Salut,

ben ce que je veux c'est qu'au clique sur le bouton, ça m'affiche un alert tout bête contenant le texte dans le input !
Mais il se trouve que quand clique sur le bouton, le alert me marque bien se texte mais quand je change se texte, le alert affiche toujours l'ancien texte !

Puis pour répondre à vos commentaire, je vais pas appeller une fonction JS qui a juste une ligne de code a savoir : document.getElementById('nom').value = document.getElementById('phrase').innerHTML

Lol

Quelqu'un peut m'aider ???

A+

gaerebut
1
Utilisateur anonyme
10 mai 2009 à 21:27
Dis nous plutot ce que tu veux faire (décrit étape par étape ce que tu veux faire)
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
10 mai 2009 à 21:34
Bsr

Ouais y'a pas l'air d'avoir spécialement d'erreur dans le code sauf que personnellement je ne mets jamais le code Javascript directement dans les balises HTML : il n'a rien à faire là ;-)
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
11 mai 2009 à 00:25
J'ai oublié de préciser que normalement, les champs input + boutton sont cachés et apparaissent au clique sur le lien !

A+

Gaerebut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
11 mai 2009 à 09:25
Bjr

Puis pour répondre à vos commentaire, je vais pas appeller une fonction JS qui a juste une ligne de code a savoir : document.getElementById('nom').value = document.getElementById('phrase').innerHTML

Bien sûr que SI ! Le CSS a permis de séparer le fond de la forme, ben pour le code JS c'est la même chose il permet de séparer le comportement de l'HTML pur.
voir ici http://www.pompage.net/traduction/separation

Autrement donne le code complet parce que là le phénomène que tu obtiens est bizarre ... ;-)
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
11 mai 2009 à 13:07
Salut tout le monde,

je n'est pas donné le code complet car je sais que j'aurai perdu plus de la moitié du monde.
Déjà que je demandais quelque chose d'assez "simpliste", pas grand grand monde s'est interressé à mon problème. D'ailleurs je remercie ceux qui se sont penché dessus ! Et merci à PhP pour ton petit cours sur l'isolation de code JS ;)

Pour revenir au code, j'utilise en vrai la library Mootools 1.2 et la library SqueezeBox 1.1 et aussi un peu la library Roar Notification 1.0.1.
Je précise qu'ils sont tous bien compatible et qu'aucun conflit n'est possible vu que ces 2 dernière library se base sur la première !
Donc en gros, je pensais que c'était peut-être dû à la SqueezeBox et que le "Bug" venait du fait que le principe du value d'un textbox ne change pas quand il est dans un SqueezeBox et reste initiale.

En fait , en cliquant sur le lien je lui passais bien une valeur, mais pas une valeur brute d'un champ mais la valeur d'une variable.
Et donc au clique, cette valeur allait bien dans le champ texte et le bouton alerte renvoyais bien le bon texte mais lorsque je changé le texte, il m'affichait toujours l'ancien texte qui était celui de la variable !
Après modification du code, j'ai adapté ça en plaçant une seconde variable (de sauvegarde) qui fait que ça marche maintenant.
Voici mon code, ça sera plus parlant pour certain (et moins pour d'autre mdr) :

code HTML:

<div id="planete_name" style="text-align: right; margin-right: 55px;">
	<span id="nomPlanete"></span>
	<a href="#changeNomPlanete" rel="boxed" onclick="$('newPlaneName').value=planetNameSave">Renommer</a>
</div>
<span style="display:none">
	<div id="changeNomPlanete" style="margin-left: 22px;margin-top:20px">
		<p>Votre planete: <input type="text" id="newPlaneName" onchange="planetNameSave=this.value" class="input" maxlength="20"/>
                <input type="image" src="../img/game/btOk.png" style="position:absolute" onclick="changePlanetName(planetNameSave)"/>
                </p>
	</div>
</span>


Code JS:

function changePlanetName(valeur){
	valeur = valeur.replace(/\s+/g," ");
	if(valeur.length<=0)
		valeur=planetName;
	else if(valeur.length>20){
		var roars = new Roar();	
		roars.alert('<font color=red>Erreur !</font>', 'Le nom de votre planete de doit pas excéder les 20 caractères') // Contre les injections Javascript Basiques
	}
	else{
		new Request({
			method:"post",
			async: true,
			url:"../game/accueil/",
			data:{
			'session':Cookie.read('session'),
			'type':'planetName',
			'name':valeur
			},
			onSuccess:function(response){
				alert(response);
			}
		}).send();
	}
}


Voila, mon code comme il l'est vraiment. Je n'est pas mis comment la variable planetNameSave obtient sa valeur initiale mais c'est une attribution comme un autre.

Je tiens à préciser que je n'est pas encore adopter ton principe d'isolation de code.
MAIS, je vais le faire ! ^_^'

Voila, donc le problème est a présent résolu pour le meilleur et pour le pire ! lol
Merci de votre aide.

A+

Gaerebut
--
Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1:  ne jamais dire tout ce que l'on sait...
-Règle 2: ...
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
11 mai 2009 à 13:28
bjr

si c'est résolu il ne te reste plus qu'à mettre le tag Résolu lol

Pour la façon de coder c'est juste une façon de voir les choses bien sûr ce n'est pas THE methode ;-)

Ceci dit comme je vois que tu utilises déjà des librairies externes tu es sur la bonne voie lol

0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
11 mai 2009 à 13:28
bjr

si c'est résolu il ne te reste plus qu'à mettre le tag Résolu lol

Pour la façon de coder c'est juste une façon de voir les choses bien sûr ce n'est pas LA méthode absolue ;-)

Ceci dit comme je vois que tu utilises déjà des librairies externes tu es sur la bonne voie lol

0