2016-11-14 1 views
1
<div typ="elementRadio" class="element elementRadio"> 
<input type="radio"> 
<input type="radio"> 
<input type="radio"> 
</div> 

<div typ="elementRadio" class="element elementRadio"> 
<input type="radio"> 
<input type="radio"> 
<input type="radio"> 
</div> 

................. 
<div typ="elementRadio" class="element elementRadio"> 
<input type="radio"> 
<input type="radio"> 
<input type="radio"> 
</div> 

Ils doivent ajouter un nom aléatoire Entrée. Alors que l'entrée radio avait un nom différent dans chaque classe.Nom d'ajout de radio d'entrée dans la classe

Mon code

$('.elementRadio input:radio').each(function() { 
     $("input:radio").attr("name", "name1"); 
     alert($("input:radio").attr("name")); 
    }); 

Tous Nom

+1

Comment générez-vous que les boutons radio? Pouvez-vous ne pas mettre un nom dans la source à ce moment-là? –

+0

Je ne connaîtrai jamais le nombre exact d'entrées. Tout sera au hasard –

+0

Ce n'est pas ce que je voulais dire. Je demande comment créer le HTML pour ces boutons radio? Il serait beaucoup plus facile d'ajouter la propriété 'name' à ce point. Vous semblez aussi ne pas donner toute la radio un 'value', de sorte que leur but est un peu redondant –

Répondre

0

Essayez cette name aléatoire de chaque entrée radio

var count =1; 
 
    $('.elementRadio input:radio').each(function (a) { 
 
     if(a== 3) 
 
     { count=2; } 
 
    else if(a == 6){count=3} 
 
    $(this).attr("name", "name"+count); 
 
     console.log($(this).attr("name")); 
 
    
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div typ="elementRadio" class="element elementRadio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
</div> 
 

 
<div typ="elementRadio" class="element elementRadio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
</div> 
 

 
................. 
 
<div typ="elementRadio" class="element elementRadio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
<input type="radio"> 
 
</div>

+0

Le nom doit être le même pour chaque groupe de trois radios, sinon chacun unique peut être sélectionné. –

+0

Ça marche, même si c'est hideux. Voir @ La réponse de Rajesh pour une mise en œuvre beaucoup mieux –

1

Vous pouvez itérer sur tous les e .element.elementRadio LÉMENTS et utiliser le index de jQuery.each()

Vérifiez également que vous devez corriger typ="elementRadio" dans le divs

Code:

$('.element.elementRadio').each(function (index) { 
 
    $(this).find('input:radio').attr('name', 'name_' + index); 
 

 
    // Console log: names 
 
    console.log($(this).find('input:radio').attr('name')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
<div class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
<div class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div>

+0

Le nom doit être le même pour chaque groupe de trois radios, sinon chacun unique peut être sélectionné. –

+0

J'espère que vous avez la réponse à votre commentaire – Rajesh

+0

@Rajesh non, je ne comprends pas .. –

3

boucle Vous devez sur .elementRadio puis ajouter des noms à input:radio.

Vous pouvez utiliser index pour calculer des noms uniques.

$('.elementRadio').each(function(i) { 
 
    $(this).find('input:radio').attr("name", "name"+ (i+1)); 
 
    console.log($(this).find('input:radio').attr("name")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
................. 
 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div>

+0

Bon travail CECI EST PARFAIT :) –

+1

Vous devriez également suggérer de supprimer le 'typ =" elementRadio "' de la 'div.element.elementRadio' –

+0

Il est hors de la portée de cette question cependant, vous avez raison. Je vais le laisser à OP (@MartinCaruk) pour le rectifier. Merci. – Rajesh

1

Check this out. j'ai fait une première itération pour chaque groupe de radio et ensuite définir chaque mensonge d'entrée de radio du groupe même nom. J'ai également fait le nom dans le format de tableau afin que vous puissiez obtenir les données dans le tableau. Espérons que cela fonctionnera pour vous

$('.elementRadio').each(function (i) { 
 
     var name = "name["+(i+1)+"]"; 
 
     $(this).find("input:radio").attr("name", name); 
 
      console.log(name); 
 
     
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div> 
 

 
................. 
 
<div typ="elementRadio" class="element elementRadio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
    <input type="radio"> 
 
</div>