获取所有单选按钮和文本字段值

时间:2010-12-25 18:27:38

标签: javascript jquery html forms input

我的页面上有一个表单,位于类.class-lesson中。表单本身只包含文本字段和单选按钮。我不知道每个表单中有多少都是PHP,因为它是由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 个答案:

答案 0 :(得分:1)

要以序列化形式获得整个<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);
});