Jquery - d'Obtenir la valeur, de créer dynamiquement des entrées
Je suis coincé en essayant de créer un "quiz-générateur".
J'ai un formulaire que vous pouvez remplir répondre à d'autres solutions pour le quiz, mais ici, il pourrait également créer dynamiquement de nouveaux champs avec de nouvelles id.
De sorte que son la création de nouvelles entrées avec id txtAnswer1,txtAnswer2 etc.
Ici est la (pas de travail) code pour obtenir les valeurs:
$("#AddNewQuiz").click(function () {
var NewQuizAlts = $("#txtAnswer").val();
var NewQuizQuestion = $("#NewQuizQuestion").val();
var init = {
'questions': [
{
'question': NewQuizQuestion,
'answersAlts': [NewQuizAlts,'Two','Three','Four'],
'correctAnswer': 1
}
]
}
Vous voyez ici, c'est seulement l'obtention de la statique de la première valeur. Mais je voudrais obtenir toutes les valeurs créées dans une "boucle" ou quelque chose.
Quelqu'un a des idées?
Merci!
Merci pour les réponses!
Mais je ne peux pas gérer à travailler!
J'ai essayé ceci:
$('input[id^="txtAnswer"]').each(function(input){
var value = $('input[id^="txtAnswer"]').val();
var id = $('input[id^="txtAnswer"]').attr('id');
alert('id: ' + id + ' value:' + value);
});
Mais c'est seulement en me donnant des alertes (4 fois) de la seule la dernière créé entrée. Quel est le problème?
Chose est, c'est ce que j'aimerais réaliser:
1.) Utilisez le code ci-dessus pour obtenir une liste de tous créé entrées.
2.) Les mettre dans une séparation par virgule liste avec les valeurs comme ceci:
QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+''];
3.) Et aussi l'avoir en générant plus de solutions de rechange dans la liste en fonction du nombre d'entrées qui ont été créés, donc si j'ai créé 5 solutions de remplacement, ce sera:
QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+'',''+Alt4+'',''+Alt5+''];
Je comprends, si il y a beaucoup de demander de l'aide avec tout cela, mais un peu est mieux que rien 🙂
Merci!
Vous devez vous connecter pour publier un commentaire.
EDIT:
Dans ce code, vous n'êtes pas correctement à l'aide du contexte. http://api.jquery.com/jQuery.each/
Dans votre
.each
, ce qui est passé à la fonction est un élément dans le tableau que vous avez fait avec votre sélection. Lorsque vous définissezvalue = $('input...
, vous êtes en tirant le même tableau une fois de plus.Utilisation
.each
, de cette façon:Sauf si vous avez besoin des réponses id, pourquoi ne pas utiliser des données* les attributs de désigner comme une réponse? Vous pouvez marquer chacun un comme ça:
<input data-type="answer"/>
Ensuite il suffit de tirer tous dans cette manière:
Cette façon de faire élimine préoccupation sur la nécessité de faire en sorte que chaque dynamique id est unique, si elles ne sont pas importantes. J'ai un filtre sur les données que j'ai créé pour le travail qui crée dynamiquement des éléments à partir de la page est chargée et je n'ai aucun problème de l'extraction de données à partir du DOM de cette manière.
Vous pouvez faire ceci:
Essayez ceci:
Si tout ce que vous voulez faire est de faire une boucle par les entrées, essayez quelque chose comme ceci:
Qui passe en boucle sur CHAQUE champ de saisie sur votre page.
Vous pouvez filtrer davantage par la définition de [type=text] ou même en utilisant des expressions régulières pour obtenir certains champs de texte de départ avec certains noms d'utilisateur (par exemple "correspond à un champ de texte avec un IDENTIFIANT commençant par "txtAnswer" suivi d'un numéro).
Essayez ceci: