11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai une fonction javascript qui n'a pas était écrite par moi, mais sue je dois maintenir. Et vu que je suis une sous-merde en javascript j'aurais besoin de votre aide Smiley smile

function check(NomEnvoi) {
  NomEnvoi = NomEnvoi.replace(String.fromCharCode(39), "'");
  alert(NomEnvoi);
}


(J'ai un peu simplifier, mais c'est là où ça pose pb)

Sous FireFox ça ne passe pas avec du style 'MyChaine' (qui était ds NomEnvoi) is not defined

Alors ma question est comment remplacer dans la chaîne proprement en javascript ?

Merci

@+
Modifié le 26 Nov 2004 - 14:14
Peux-tu préciser comment tu récupères NomEnvoi ? Enfin, donner ton code complet : la partie html qui appelle la fonction serait utile pour comprendre... Est-ce une valeur récupérée sur un formulaire ? autre ?
C'est une valeur récupéré par un formulaire, mais modifiée en asp, donc c'est une chaîne "toute con"
Poire a écrit :
C'est une valeur récupéré par un formulaire, mais modifiée en asp, donc c'est une chaîne "toute con"

Elle me semble loin d'être toute con si elle est modifiée par asp avant traitement... Le problème vient peut-être de là ?
Je ne peux pas t'aider plus sans autres éléments
Je l'appel là :
<form class="frmEnvoi" method="post" id="frmContenu" onsubmit="return check(<%=replace(replace(textNomEnvoi,Chr(34)," "),Chr(39)," ")%>);" action="bloub.asp">


Désolé, hier soir je n'avais pas le source
Poire a écrit :

<form class="frmEnvoi" method="post" id="frmContenu" onsubmit="return check(<%=replace(replace(textNomEnvoi,Chr(34)," "),Chr(39)," ")%>);" action="bloub.asp">


Alors là, tu envoies déjà quelque chose passé à la moulinette asp je crois ( <% c'est bien l'ouverture d'une balise asp non ?)
Il faudrait remonter encore dans ton... jusqu'à la "naissance" de ta variable textNomEnvoi. A quel endroit tu la crées ?
Alors, elle est créée comme ça :
<%textNomEnvoi  = Ors("NomEnvoi").value%>


Ors("NomEnvoi") vient d'un champ d'une base de donnée

le script, la déclaration et le form sont sur la même page

le script est lancé avant le submit de la form

edit : <% et %> indiquent bien du code asp, donc je fais des remplace de ma chaine avant de l'envoyer à mon javascript, donc ça revient à faire
[code]check("bloub") ou check(bloub) .... tien d'ailleur ça doit être ça le pb Smiley lol
Modifié le 26 Nov 2004 - 10:22
Poire a écrit :
Alors, elle est créée comme ça :
<%textNomEnvoi  = Ors("NomEnvoi").value%>

Ors("NomEnvoi") vient d'un champ d'une base de donnée


Oula, tout ça me semble bien compliqué... mais quand même j'ai du mal à saisir une chose : NomEnvoi.value.... ça ressemble à une valeur de champs de formulaire ça ? non ?

Si tu dis que NomEnvoi vient d'une bdd, est-ce qu'en fait tu extraies une valeur de ta bdd que tu mets dans un champ de formulaire pour ensuite le récupérer ?
Ors est un recordset donc Ors("NomEnvoi").value est la valeur du champ NomEnvoi ds la ligne sélectionné de Ors

c'est un formulaire de modification, donc il y a effectivement un champ du formulaire que je rempli grâce à la BD, l'utilisateur peut le modifier et je sauve le formulaire ds la base

Je précise que le code n'est pas de moi, et que je n'ai pas le cahier des charges, ni les impératifs

Donc j'essaye de ne pas trop toucher au traitement Smiley rolleyes
Il ne s'agit pas de toucher au traitement mais de s'assurer que la variable existe aussi sur Firefox et Mozilla...
Les extraits asp, je ne connais pas du tout, je m'en tiendrais à ce que ton formulaire envoie...
Bon alors fait un test :
- crées une page ou tu n'as que le formulaire de modification envoyé à ton utilisateur (avec des valeurs extraites de ta bdd).
- fais une fonction javascript toute bête qui ressemble à ça :
function test {
NomEnvoi = document.forms.lenomdetonformulaire.lenomduchamp.value;
alert(NomEnvoi);
}

- appelles cette fonction comme ça par exemple :
<input name="bouton" type="button" value="Tester" onMouseUp="test();"/>

Ceci devrait te dire quelle est la valeur de ton champ. Fais les tests sur IE et sur le navigateur qui te pose problème et regarde s'il y a une différence...
On continue après Smiley cligne
on s'égare un chouilla là,
je connais la valeur de mon paramètre, si je fais un alert dessu, ça donne TST2

check(NomEnvoi) {
alert(NomEnvoi)
}

est correct et me retourne TST2

mon pb revient à comment remplacer une chaîne en javascript contenue dans une variable quelqu'elle soit
ok je vais voir merci

non non pas juste firefox, mais ie bouffe le javascript pourrav et pas firefox, donc je fais mes tests sous FireFox