我在解决如何从表单中获取数据以通过ajax发布时遇到了一些麻烦。我有以下代码,但它似乎没有通过复选框和单选按钮等元素发送数据。相反,它通过所有字段发送。即,如果有一组radiobuttons,它通过所有可能性发送,而不仅仅是已检查的可能性。表单可以由任何类型的元素组成,并且其中包含一定数量的元素,因此我需要以我的方式迭代。这部分似乎有效,但我似乎无法获取javascript来获取所选数据。我是否需要手动检查每个元素的类型,然后检查它是否已检查等?
myString = "";
my_form_id = "1";
my_url = "phpscript.php";
elem = document.getElementById("form_" + my_form_id).elements;
for(var i = 0; i < elem.length; i++)
{
if (i>0) { myString += "&"; }
myString += elem[i].name + "=" + elem[i].value;
}
$.ajax({
type: "POST",
url: my_url,
data: myString,
success: function(data) {
// process the post data
}
});
`
答案 0 :(得分:2)
由于你正在使用jQuery,你可以大大简化它:
var my_form_id = "1";
var my_url = "phpscript.php";
var form = $("#form_" + my_form_id);
$.ajax({
type: "POST",
url: my_url,
data: form.serialize(),
success: function(data) {
// process the post data
}
});
jQuery的serialize方法为您完成所有工作。但如果你想手工完成,那么是的,你必须检查每个领域。