Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 17h54   #1
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
Par défaut Amusons nous avec les sélécteurs

Bonsoir,
J'ai ce html :
Code :
1
2
3
4
5
6
7
 
<li><label for="sexe">Sexe :</label>
<select name="sexe" id="sexe">
<option value="0">Indifférent</option>
<option value="1">Précision</option>
</select>
</li>
et le jQuery :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$("select[name=sexe]").change(function(){
    if($(this).val() == 1){
        var sexe = [{value: 1, texte: "Homme"},{value: 2, texte: "Femme"}];
	$.each(sexe, function(i, item) { 
            //ce code marche	
            $("select[name=sexe]").after('<input type="radio" name="sexevalue" value="'+item.value+'" /> '+item.texte);
 
            //Pourquoi celui ne marche pas ???
            $("<input/>", {type: "radio", name: "sexevalue", value: item.value}).insertAfter($("select[name=sexe]"));  
						$(":radio[name=sexevalue]").eq(i).after(" "+item.texte);
	});
    }
});
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 20h47   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
il s'agit d'une mauvaise utilisation du eq(x), le script fait exactement ce que tu lui demandes en indiquant eq(i).
Mais des alertes avant chaque instruction et tu verras l'avancement des insertions en notant bien à quoi correspond eq(i).

Ensuite essaies avec eq(0).
Code :
$(":radio[name=sexevalue]").eq(0).after(" "+item.texte);
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 23h13   #3
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

En effet, l'élément visé n'est pas le second de la série (eq(1)) mais le premier (eq(0)), car les méthodes obj.after() et insertAfter(obj) ajoute après l'objet et pas en dernière position.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h50   #4
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
Code :
1
2
3
4
5
6
7
 
        var sexe = $("select[name=sexe]");	       
        var sexetab = [{value: 1, texte: "Homme"},{value: 2, texte: "Femme"}];
        $.each(sexetab, function(i, item) { 
            $("<input/>", {type: "radio", name: "sexevalue", value: item.value}).appendTo(sexe.parent()); 
            $("input[name=sexevalue]").eq(i).after(" "+item.texte);	
        });
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h28.


 
 
 
 
Partenaires

Hébergement Web