Javascript, select, on change

Fermé
rukire - 27 févr. 2009 à 11:04
 TobalFr - 10 juin 2009 à 11:29
Bonjour,

j'ai un formulaire html,
je veux que lorsque l'utilisateur a choisit une option dans mon select il affiche certaines choses mais ca ne marche pas, l'appel ne s'effectue pas
(mon code est un petit peut compliqué, je le mets si vous comprenez j'expliquerais)

mon bout de formulaire

<table><tr><td><p><label for="type">Type de parametre</label> : <select id="type" name="'.$type.'" onchange="checktype(this,'.$i.');" >
<option value="InFile">InFile (fichier en entrée)</option>
<option value="OutFile">OutFile (fichier en sortie)</option>
<option value="Sequence">Sequence (sequence de donnée en entrée)</option>
<option value="Results">Results (fichier de sortie (pas un réel parametre, appelé par l\'utilisateur))</option>
<option value="Switch">Switch (case à cocher)</option>
<option value="List">List (liste à choix multiple)</option>
<option value="Excl">Excl (liste à choix unique)</option>
<option value="Integer">Integer (valeur entière)</option>
<option value="Float">Float (valeur réelle)</option>
<option value="String">String (chaine de caractère (sans espace et caractère spéciaux))</option>
<option value="Paragraph">Paragraph (liste de parametres groupé)</option>
</select></td></tr>';
(il n'y a pas le form le submit etc car c'est un bout de code, en entier ca fait 300lignes)

javascript

function create_champ(i,j)
{

var i2 = i + 1;

document.getElementById('leschamps_'+i).innerHTML = '<tr><td> <label for="texte">Texte à afficher'+i+'</label> <input type="text" id="texte" name="texte'+j+i+'"> <label for="valeur">Valeur'+i+'</label> <input type="text" id="valeur" name="valeur'+j+i+'"> <input type="radio" id="vdef" name="vdef'+j+'" value="vdef'+j+i+'"/> <label for="vdef">Valeur par défault</label> </td></tr>';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<tr><td id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+','+j+')">Ajouter un champs</a></td></tr>' : '';

}

funtion checktype (liste,i)
{
alert ("ok");
var numero = liste.selectedIndex;
var type = liste.options[numero].value;

if ((type == 'List') || (type == 'Excl'))
{
document.getElementById('list'+i).innetHTML = 'Liste : </td></tr><tr><td><label for="vdef">Valeur par défault</label> <input type="radio" id="vdef" name="vdef" value="vdef'+i+'1"/> <label for="texte">Texte à afficher</label> <input type="text" id="texte" name="texte'+i+'1"> <label for="valeur">Valeur</label> <input type="text" id="valeur" name="valeur'+i+'1"></td></tr><tr><td><label for="vdef">Valeur par défault</label> <input type="radio" id="vdef" name="vdef" value="vdef'+i+'2"/> <label for="texte">Texte à afficher</label> <input type="text" id="texte" name="texte'+i+'2"> <label for="valeur">Valeur</label> <input type="text" id="valeur" name="valeur'+i+'2"></td></tr>';

document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ?
<tr><td id="list3"><a href="javascript:create_champ(3,'+i+')">Ajouter un champs</a></td></tr>';
}
else
document.getElementById('list'+i).innetHTML = 'Valeur par défaut :<br/><input type="text" name="valeur'+i+'"/></td></tr>';


donc c'est censé, si dans select c'est choisit list ou excl ca affiche quelque chose sinon autre chose (le alert("ok") du début sert de teste mais ca marche jamais !
Merci d'avance

3 réponses

document.getElementById('list'+i).innetHTML = 'Valeur par défaut :<br/><input type="text" name="valeur'+i+'"/></td></tr>';

petite erreur sur le "innetHTML" => innerHTML
1
j'ai un beug dans mon fichier javascript ! mes autres js ne marche pas, je vais chercher
0
ca change rien, j'arrive pas a trouver ou est l'erreur et c'est forcement dans ce que j'ai rajouté (donc ce que je vous ai mis tout a l'heure)
quelqu'un voit une erreur?
0