2009-05-27 8 views
0

J'ai une page ASPX où dans le chargement de la page je crée dynamiquement des contrôles de liste de boutons radio et de rendu au navigateur.J'aurai 2 éléments de liste dans chaque bouton radio liste .One est Oui et la seconde est Non. Le nombre de boutons Radio peut être n.Maintenant dans mon code de script Java, je veux savoir quel bouton radio est cliqué. J'utilise déjà jQuery .un moyen facile de gérer cela?Javascript: Valider le contrôle de liste de bouton radio créé dynamiquement dans ASP.NET

Mon rendu HTML au navigateur est

<table border="0" id="tblQuestions"> 
    <tr> 
     <td>Do you have a valid passport ?</td> 
    </tr><tr> 
     <td><table id="answer-1" border="0"> 
      <tr> 
       <td><input id="answer-1_0" type="radio" name="answer-1" value="1" /><label for="answer-1_0">Yes</label></td> 
      </tr><tr> 
       <td><input id="answer-1_1" type="radio" name="answer-1" value="0" /><label for="answer-1_1">No</label></td> 
      </tr> 
     </table></td> 
    </tr><tr> 
     <td>Are you married ?</td> 
    </tr><tr> 
     <td><table id="answer-2" border="0"> 
      <tr> 
       <td><input id="answer-2_0" type="radio" name="answer-2" value="1" /><label for="answer-2_0">Yes</label></td> 
      </tr><tr> 
       <td><input id="answer-2_1" type="radio" name="answer-2" value="0" /><label for="answer-2_1">No</label></td> 
      </tr> 
     </table></td> 
    </tr> 
</table> 

Merci à l'avance

Répondre

3

Le code suivant ne répond pas spécifiquement à votre question, mais il pourrait aider. Je le modifierais pour vous, mais je n'ai tout simplement pas le temps maintenant.

Je l'utilise pour les examens, pour avertir l'utilisateur qu'une question particulière n'a pas de réponse sélectionnée.

Les questions sont générées dynamiquement à l'aide d'un contrôle serveur qui émet un fichier xhtml brut. Je nomme toutes les options avec le même nom, (Q1, Q2 ...), et les ID comme (Q1a, Q1b ...)

Pour le modifier pour vos besoins, vous pourriez peut-être construire une liste des options sélectionnées dans la boucle j, c'est-à-dire en ajoutant des paires nom-valeur où l'instruction "break" est.

// Grabs all inputs - radio, checkbox, text, buttons and lists -sticks them in an array 
allInputs = document.getElementsByTagName("input"); 
var last = "NameUnlikelyToBeUsedAsAnElementName"; 

// walk through the array 
for (i = 0; i< allInputs.length; i++) 
{ 
    var input = allInputs[i]; 
    if (input.name == last) continue; // if this object name is the same as the last checked radio, go to next iteration 


    // checks to see if any one of similarly named radiobuttons is checked 
    else if (input.type == "radio") 
    {  
     last = input.name; 
     var radios = document.getElementsByName(input.name); 
     var radioSelected=false; 

     //iterate over question options 
     for (j=0; j < radios.length; j++) 
     { 
      if(radios[j].checked) 
      { 
       radioSelected=true; 
       break; // Found it, proceed to next question 
      } 
     } 
     if (!radioSelected) // no option selected 
     {  // warn user, focus question 
      alert("You did not answer question " + input.id.substring(0,input.id.length-1)); 
      input.focus(); 
      return false; 
     }     
    } 

} 

return true; 
0

est avec l'hypothèse que vous avez déjà jquery inclus dans votre page.

définir une classe sur vos articles bouton radio, essentiellement votre code HTML côté client devrait ressembler à <input id="answer-2_1" type="radio" name="answer-2" value="0" class="myrdo" />

maintenant, dans votre code js, câbler tout simplement un gestionnaire d'événements de la classe

$(".myrdo").bind("click",function(){if($(this).attr("checked")==true) {alert($(this).val);} }); 

la La commande ci-dessus alerte simplement la valeur du bouton radio sélectionné.

Questions connexes