problème d'execution d'un code JS sous IE - HTML/CSS - Programmation
Marsh Posté le 03-03-2005 à 11:30:51
Chelou ton code
Déjà en JS, pas d'underscore dans les noms. Les underscore c'est que valable en PHP. Là faut du camelCasing
Aussi, met un id à ton formulaire, et accède y via document.getElementById
Marsh Posté le 03-03-2005 à 11:31:34
airsupply a écrit : Salut, j'ai une méthode JS placé dans une page HTML, qui permet d'afficher ou de cacher des champs textes en fonction du choix fait sur un checkbox. |
Les document.form, c'était bon durant la première guerre mondiale.
De nos jours, on utilise le DOM.
Marsh Posté le 03-03-2005 à 11:49:27
FlorentG a écrit : Chelou ton code |
Bon, je suis passé à document.getElementById . et toujours le même résultat . Sous IE, marche pas, et sous Firefox, fonctionne très bien.
voici les changements :
function choix_profil()
{
if (document.getElementById("box1" ).checked == true) {
document.getElementById("text3" ).type = "hidden";
document.getElementById("text4" ).type = "hidden";
}
if (document.getElementById("box2" ).checked == true) {
document.getElementById("text3" ).type = "text";
document.getElementById("text3" ).value = "BLABLA";
document.getElementById("text4" ).type = "text";
document.getElementById("text4" ).value = "BLABLA";
}
}
Marsh Posté le 03-03-2005 à 11:54:25
FlorentG a écrit : Chelou ton code |
au fait, voici la balise JS que j'utilise :
<SCRIPT LANGUAGE="JavaScript">
Marsh Posté le 03-03-2005 à 11:55:51
<script type="text/javascript"> |
Aussi c'est quoi ce truc , pourquoi tu change le type du champ pour le planquer
document.getElementById("text3" ).style.display = "none" |
Marsh Posté le 03-03-2005 à 12:07:43
FlorentG a écrit :
|
c'est simple, en fonction du choix fait sur un checkbox , les 2 champs apparaîssent ou disparaissent au lieu de les griser . Et je n'ai trouvé que type="hidden" .
tu as écris : document.getElementById("text3" ).style.display = "none" pour le faire disparaitre, et par quoi il faut remplacer "none" pour que le champs apparaisse.
merci
Marsh Posté le 03-03-2005 à 12:11:03
au lieu de none, tu met soit "block" soit "inline" suivant le résultat désiré Parce que changer le type, faut surtout pas
Marsh Posté le 03-03-2005 à 12:27:39
FlorentG a écrit : au lieu de none, tu met soit "block" soit "inline" suivant le résultat désiré Parce que changer le type, faut surtout pas |
bon tanpis, ça ne fonctionne toujours pas . les champs restent cachés .
merci quand même pour tes réponses.
Marsh Posté le 03-03-2005 à 12:28:09
Non, ça devrait l'afficher à nouveau. T'as du foirer un truc
Marsh Posté le 03-03-2005 à 12:44:30
FlorentG a écrit : Non, ça devrait l'afficher à nouveau. T'as du foirer un truc |
ben écoute, je ne sais plus quoi répondre ... voici la portion de code . fait un copier coller et regarde le résultat .. (enfin si tu as le temp :-) )
<html>
<head>
<title>TEST</title>
<link rel="stylesheet" rev="stylesheet">
<SCRIPT LANGUAGE="JavaScript">
function choix_profil()
{
if (document.getElementById("box1" ).checked == true) {
document.getElementById("text3" ).style.display = "none";
document.getElementById("text4" ).style.display = "none";
}
if (document.getElementById("box2" ).checked == true) {
document.getElementById("text3" ).style.display = "block";
document.getElementById("text3" ).value = "BLABLA";
document.getElementById("text4" ).style.display = "block";
document.getElementById("text4" ).value = "BLABLA";
}
}
</script>
</head>
<body>
<form name="form1" method="post">
<table width="500" border="0" align="center" >
<tr>
<td width="246">Votre Profil</td>
<td width="98">
<input name="boutton_1" id="box1" type="radio" value="UPR001"onClick="choix_profil(this.form)" checked>
Particulier<br>
</td>
<td width="142">
<input name="boutton_1" id="box2" type="radio" onClick="choix_profil(this.form)">
Professionnel</td>
</tr>
<tr>
<td width="246"> </td>
<td colspan="2">
<input name="text_3" id="text3" type="hidden" onFocus="if(this.value=='Raison sociale')this.value='';" >
</td>
</tr>
<tr>
<td width="246"> </td>
<td colspan="2">
<input name="text_4" id="text4" type="hidden" onFocus="if(this.value=='Numéro Siren')this.value='';">
</td>
</tr>
</table>
</form>
</body>
</html>
Marsh Posté le 03-03-2005 à 12:59:14
airsupply a écrit : ben écoute, je ne sais plus quoi répondre ... voici la portion de code . fait un copier coller et regarde le résultat .. (enfin si tu as le temp :-) ) |
Ecoute, tu comprends RIGOUREUSEMENT RIEN à ce que l'on te dit visiblement. De plus, tu foires des "" , certains espaces manquent et j'en passe.
Apprend les bases et reviens ici plus tard. ça ne sert à rien de te macher le travail tant que tu ne comprends pas un minimum ce qu'on te dit...
Déjà dans un premier temps, apprend à construire un document (x)html valide, puis les propriétés basiques CSS.
Et ensuite, apprend ce qu'est une fonction javascript + quelques objets javascript de base... On en reparlera après hein...
Marsh Posté le 03-03-2005 à 13:36:36
Hermes le Messager a écrit : Ecoute, tu comprends RIGOUREUSEMENT RIEN à ce que l'on te dit visiblement. De plus, tu foires des "" , certains espaces manquent et j'en passe. |
pourquoi tu t'enerves comme ça . Il y a pas mort d'homme que je sache; j'ai posé une simple question concernant l'affichage de ces champs . Si je pose une question dans un forum pareil, c'est peut être parce que quelque part je n'ai pas la réponse et que je ne suis pas un codeur à la base .
enfin merci quand même, je vois que même dans les forums, il y a des mecs "indulgents"
Marsh Posté le 03-03-2005 à 13:49:13
Revois tes événement onclick, y'a des problèmes de syntaxe dedans
Marsh Posté le 03-03-2005 à 13:53:22
airsupply a écrit : pourquoi tu t'enerves comme ça . Il y a pas mort d'homme que je sache; j'ai posé une simple question concernant l'affichage de ces champs . Si je pose une question dans un forum pareil, c'est peut être parce que quelque part je n'ai pas la réponse et que je ne suis pas un codeur à la base . |
Ce forum est là pour que tu le deviennes. Et avant tout, il faut commencer par la base. Point.
Sans bases, rien n'est possible, même pas d'adapter des codes faits par d'autres.
Marsh Posté le 03-03-2005 à 14:07:48
Ce qui m'étonne le plus c'est que tu modifie la propriété display sur un input type=hidden...
Si tu veux les afficher, c'est input type=text....
--
et comme la souligné FlorentG, dans le onclick tu passe une variable qui n'est pas déclaré et qui est inutile, donc vire this.form dedans
--
autrement, côté "style" de programation
stop les
Code :
|
ecrit directement
Code :
|
une condition, c'est toujours une valeur booléenne, donc pas la peine d'écrire == true...
et c'est vrai pour tous les languages.
Marsh Posté le 03-03-2005 à 14:25:32
rompi a écrit : Ce qui m'étonne le plus c'est que tu modifie la propriété display sur un input type=hidden...
|
merci , en effet, si je remplace type="hidden" par type="text" ; cela fonctionne.
Marsh Posté le 03-03-2005 à 11:29:40
Salut, j'ai une méthode JS placé dans une page HTML, qui permet d'afficher ou de cacher des champs textes en fonction du choix fait sur un checkbox.
Sous Firefox, cette méthode fonctionne parfaitement, mais pas sous IE 6.0
Auriez-vous une idée, et comment puis je résoudre ce problème. m
merci
voici la méthode :
function choix_profil()
{
checkbox_1 = eval(form_3.elements[0]);
checkbox_2 = eval(form_3.elements[1]);
if (checkbox_1.checked == true) {
document.form_3.text_3.type = "text";
document.form_3.text_3.value = "BLABLA";
document.form_3.text_4.type = "text";
document.form_3.text_4.value = "BLABLA";
}
if (checkbox_2.checked == true){
document.form_3.text_3.type = "hidden";
document.form_3.text_4.type = "hidden";
}
}