Получить все значения радиокнопок и текстовых полей - PullRequest
0 голосов
/ 25 декабря 2010

У меня есть форма на моей странице, которая находится в классе .class-lesson.Сама форма содержит только текстовое поле и переключатели.Я не знаю, сколько из них в форме, поскольку она динамически генерируется PHP.Каждый новый вход в форме называется q1, q2, ... qn.

Я пытаюсь получить все значения, независимо от того, отвечены они или нет, и сохранены в массиве JavaScript.Пока это мой код:

// get the value of each input field
var numQuestions = $(".class-lesson label").not(".csubmit").length;

// store each answer
for (var i = 0; i < numQuestions; i++) {
 // store our variables
 var tempAnswer = undefined;
 var tempReference = $(":input[name=q"+(i+1)+"]");
 // loop through each item
 if ( tempReference.attr('type') == 'radio' ) tempAnswer = $(":input[name=q"+(i+1)+"]:checked").val();
 else tempAnswer = tempReference.val();
 // output / store the item
 alert( tempAnswer );
}

Я уверен, что должен быть более простой способ сделать это, но я не знаю.Вот почему я спрашиваю.Если я не проверил: тогда, он просто захватит первое значение группы радиосвязи.

Итак, как я могу сделать это более эффективным?

1 Ответ

1 голос
/ 25 декабря 2010

Чтобы получить весь <form> (или любой набор входных данных) в сериализованной форме, как это было бы при обычной отправке на сервер (без использования JavaScript), используйте .serialize() это:

var formData = $(".class-lesson :input").serialize();
//or...
var formData = $("#formID").serialize();

Если вы отправляете через AJAX, например, это делает ваш код невероятно простым, например:

$.post("test.php", $("#formID").serialize(), function(data) {
  alert("Response was: " + data);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...