2013-08-21 2 views
0

Je travaille sur une application Quiz où je dois obtenir tous les éléments sélectionnés ou les réponses de l'utilisateur. Ces éléments peuvent être une entrée radio, une entrée de case à cocher ou le champ de texte. Chaque élément reçoit un attribut question_id, answer_id et un attribut mark. Ce que je veux faire est que je dois obtenir tous ces questions, ID de réponse et marquer l'attribut afin que je puisse calculer les marques, et envoyer les deux question_id et answer_id à DB afin que je puisse stocker la réponse d'utilisateur sous une question particulière. J'ai rendu le questionnaire sur le modèle en utilisant ce code. Dites-moi comment obtenir les attributs des éléments sélectionnés pour soumettre le questionnaire.Comment faire une boucle sur tous les éléments sélectionnés d'une page HTML en utilisant jquery

+0

Avez-vous besoin du sélecteur jquery qui sélectionne toutes les radios, les cases cochées et les zones de texte non vides? –

+0

Non, Ayyappan Sekar, Je veux sélectionner les champs de réponse sélectionnés pour obtenir les attributs question_id et answer_id. Si je reçois seulement ces deux attributs ma tâche sera accomplie –

+0

je peux vous aider si vous partagez le html rendu de ces quiz la liste –

Répondre

0

J'ai résolu ce problème m en obtenant tous les éléments disponibles dans le DOM par leur nom, en utilisant la méthode getElementsByName ('answer'). Il me retourne une liste puis boucle sur cette liste j'ai vérifié si l'élément est coché ou non s'il est coché je reçois leurs attributs.

attributes_list=new Array() 
var answers=document.getElementsByName('answer'); 
for(i=0;i<answers.length;i++){ 
    if(answers[i].checked){ 
      question_id=answers[i].attributes['question_id'].value 
      answer_id=answers[i].attributes['answer_id'].value 
      attributes_list.push({'que':question_id,'ans':answer_id}); 
     } 
} 
0

son très simple, il vous suffit d'utiliser element.attr(attributeName) fonction

JQuery documentation

Un peu JSFIddle pour vous aider à aller

alert("Radio Mark " + $("#one").attr('mark') + ", Radio Value " + $("#one").attr('value')); 

alert("check Mark " + $("#two").attr('mark') + ", check Value " + $("#two").attr('value')); 
+0

Anand, j'ai plusieurs éléments avec des classes et des ids dynamiques. il n'y a aucun ID ou classe de correctif pour aucun élément. –

+0

Jut dites-moi comment je peux boucler sur les éléments sélectionnés et obtenir les valeurs de l'attribut requis –

+0

juste utiliser $ (. Each), de la même manière que vous avez bouclé des données, de la même manière que vous pouvez boucle sur l'élément. Utilisez JSFiddle pour jouer avec JQuery – Anand

1

Je pense que cela va faire:

var questions = {}; 

$(".quiz :selected, .quiz :checked, .quiz input[type=text]").each({ 
    var $this = $(this); 
    var question = $this.attr('question_id'); 
    questions[question] = { 
     answer: $this.attr('class'), 
    }; 
}); 
+0

Hey jcubic, j'ai apporté quelques modifications à la question d'origine, j'ai supprimé l'attribut marks du champ de saisie parce que je l'ai trouvé un ensemble de sécurité. Maintenant, je veux juste obtenir l'attribut question_id et answer_id de l'option d'entrée sélectionnée. votre aide est appréciable –

+0

@ user1765969 a mis à jour le code. – jcubic

Questions connexes