【发布时间】:2013-12-11 17:04:06
【问题描述】:
我有一个输入表单,其中包含三个文本字段和一个复选框输入部分,用户可以在其中选择多个值。我还有一个 ajax 请求,它向 api 发送 POST 请求。我编写了一个函数来迭代表单输入并将它们解析为 JSON,但是,我注意到这不适用于复选框值。这是我的功能:
<script>
console.log(document);
var form = document.getElementById("myform");
form.onsubmit = function (e) {
// stop the regular form submission
e.preventDefault();
// collect the form data while iterating over the inputs
var info = {};
for (var i = 0, ii = form.length; i < ii; ++i) {
var input = form[i];
if (input.name) {
info[input.name] = input.value;
}
addPerson(info);
}
}
function addPerson(info) {
$.ajax({
type: "POST",
url: "http://example.com",
data: JSON.stringify(info),
contentType: "application/json; charset=utf-8",
crossDomain: true,
dataType: "json",
success: function (data, status, jqXHR) {
alert("success");
},
error: function (jqXHR, status) {
// error handler
console.log(jqXHR);
}
});
}
</script>
我一直在尝试使用
将复选框值转换为 JSON$.each($('input[id="data[i].id"]:checked'), function() {
var value = $(this).val();
qualifications.push(value);
});
但我不知道如何将这些值添加到要发布到服务器的 JSON 中,有人可以帮忙吗?
【问题讨论】:
-
你试过使用
.serialize()吗? -
我不明白为什么复选框应该是一个问题,它们有一个
value属性,就像任何其他表单元素一样。 -
@Johan,该函数如何知道复选框是否已被选中?
-
@DrixsonOseña,不幸的是,我是 JSON 和 Jquery 的初学者,所以我尝试的是大量谷歌搜索的结果,你能解释一下 .serialize() 的作用吗?
-
$(this).prop('checked');将返回一个布尔值
标签: javascript jquery ajax json checkbox