JavaScript/faire disparaitre 1 row d'1 table

Fermé
Nikko - 11 sept. 2009 à 10:18
 riserinard - 9 mars 2011 à 11:52
Bonjour,

Je suis en train de réaliser un tit code JS qui doit me permettre d'afficher ou non des lignes d'un tableau lorsque l'on sélectionne un radio button ou non.

Voici une partie de mon HTML (je ne mets que les "row" concernés par l'affichage)
<tr>
		<td><input type=radio name="national" value="international" id="international" onClick="display()"> Je r&eacute;side &agrave; l\'&eacute;tranger</input></td>
		<td><input type=radio name="national" value="national" id="national" onClick="display()" Checked="checked"> Je r&eacute;side en France (DOM-TOM inclus)</input></td>
		<td colspan="2">&nbsp;</td></tr>
	</tr>
       <tr id="trBP">
		<th id="bp">BP</th>
		<td headers="bp"><input type="text" name="bp" size="5"></td>
		<td colspan="2">&nbsp;</td>
	</tr>
	<tr id="trZone">
		<th id="zone">S&eacute;lection Zone</th>
		<td headers="zone">
			<select name="zone">
    			<OPTION VALUE="page1"> Text 1</option>
    			<OPTION VALUE="page2"> Text 2</option>
			</select>
		<td colspan="2">&nbsp;</td>
	</tr>
	<tr id="trPays" style="display:none">
		<th id="pays">Pays</th>
		<td headers="pays">
			<select name="pays">
    			<OPTION VALUE="page1"> Text 1</option>
    			<OPTION VALUE="page2"> Text 2</option>
			</select> </td>
	       <td colspan="2">&nbsp;</td>
	</tr>


et voici ma fonction Javascript :
function display(){
var national = document.getElementById("national");
var international = document.getElementById("international");
						
var trZone = document.getElementById("trZone");
var trBP = document.getElementById("trBP");
var trPays = document.getElementById("trPays");
						
var navigateur = navigator.appName;
		
if(navigateur == "Netscape")
{
	if(national.checked)
	{
		trZone.style.display = "table-row";
		trBP.style.display = "table-row";
		trPays.style.display = "none";
        } else if(international.checked  = "checked"){
		trZone.style.display = "none";
		trBP.style.display = "none";
		trPays.style.display = "table-row";
	}
} else {
	if(national.checked = true)
	{
		trZone.style.display = "block";
        	trBP.style.display = "block";
		trPays.style.display = "none";	
	} else {
		trZone.style.display = "none";
		trBP.style.display = "none";
		trPays.style.display = "block";
	}
}
}


Ce code fonctionne correctement sous FireFox, mais sous IE, je ne peux sélectionner que le premier radio button, le 2e est pas sélectionnable, et le javascript ne marche pas (si je modifie la CSS, je peux changer la couleur du texte, mais pas le cacher...)

Si vous avez une idée, je suis preneur... je me casse la tête depuis hier midi...

Merci par avance,
Nikko
A voir également:

2 réponses

J'ai légèrement avancé, mais j'ai un problème qui persiste. Désormais, lorsque je clique sur un radio button, je peux afficher/cacher mes champs. Le soucis c'est que ces champs sont inversés. Je m'explique :

radio1 radio2

ligne1

ligne2

ligne3

Je veux que quand je clique sur radio1 la ligne 1 et 2 disparaissent, et quand je clique sur radio 2, la ligne 3 disparaisse. Le hic c'est que quand je clique sur radio1, c'est ligne 3 qui disparaît et quand je clique sur radio 2 c'est la ligne 2 et 3 qui disparait. J4ai beau changer mon javascript, j'obtiens toujours le même comportement.

Je mets ici la version de mon JS modifiée et qui ne concerne que ie.

if(national.checked)
{
	trZone.style.display = "block";
	trBP.style.display = "block";
	trPays.style.display = "none"
} else {
	trZone.style.display = "none";
	trBP.style.display = "none";
	trPays.style.display = "block";
}


La solution logique pour inverser le comportement serait :
if(national.checked)
{
	trZone.style.display = "none";
	trBP.style.display = "none";
	trPays.style.display = "block";
} else {
	trZone.style.display = "block";
	trBP.style.display = "block";
	trPays.style.display = "none";
}

mais rien ne fait !

Help plz :X
0
Salut,

Ca doit etre à cause du display:"block" vu que t'es dans un tableau, essaye avec un display:"inline"

riserinard
0