Modérateur PHPfrance |
2575 Messages
29 nov. 2005, 13:52
...
if(form==k){document.write("<input type=text name='reg'>");}}
....
Quand tu fais un "document.write" tu réécris dans une page vierge, et donc il te semble que la zone input apparaisse dans "une nouvelle page".
Pour répondre à ton besoin, celui d'écrire la zone dans la même page où se trouve déjà le select, il ne faut pas utiliser la fonction "write", mais il faut au préalable marquer un emplacement qui va accueillir la zone à afficher.
Un objet <DIV> bien nommé et placé dans la page d'origine fera très bien l'affaire, car en JS on peut écrire dynamiquement dans une balise nommée en utilisant les propriétés "innerText" et "innerHTML" interprétées respectivement : Teste contenu et Texte au format HTML contenu dans la balise.
On écrit alors :
balise.innerText = "le texte sans mise en forme";
ou balise.innerHTML = "texte avec mise en forme";
Exemple:
Code : Tout sélectionner
<HTML>
<SCRIPT>
function lili (valeur) {
if (valeur == 0) document.all["zones_de_saisie"].innerHTML = "<input type=text name='reg'>";
}
</SCRIPT>
<BODY>
<SELECT name="Appellation" onchange="this.options[this.options.selectedIndex].value">
<option value='0'>truc </option>
<option value='1'>machin </option>
<option value='2'>autre </option>
</SELECT>
<DIV id="zones_de_saisie"></DIV>
</BODY>
</HTML>
NB.
Vu que ton script passe la valeur (.value) de l'option seléctionnée à la fonction "lili", il faut définir des values pour tes options et les vérifier (par défaut: si le mot value est absent de l'option, c'est un n° incrémentiel qui commence à 0 qui est appliqué)
Dans l'exemple, tu remarques que j'ai comparé la valeur reçue avec 0 qui est un numérique qui correpond à la valeur que j'ai donné à la première option du select. Alors ne confond pas la valeur de l'option avec le texte affiché par cette dernière.
Exemple l'option qui affiche "autre" a la valeur 2.
Une dernière remarque: les values des options ne sont pas forcement numériques.
Modifié en dernier par
sadeq le 29 nov. 2005, 14:14, modifié 3 fois.
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène