我试图从表单中获取信息并将其传递给mysql。这是我的方法:
var form = [];
$("input").each(function(){
var id = $(this).attr("name");
var value = $(this).val();
alert(id);
var item = {};
item ["name"] = id;
item ["value"] = value;
form.push(item);
});
return JSON.stringify(form);
问题是当我尝试从单选按钮获取已选中和未选中的值时。我想传递给mysql的查询字符串输出如下:
insert into contatos (nome, rua, sexo, sexo, ncasa, civil, civil, civil, bairro, aniversario, cidade, rg, cpf, usuario, telefone, senha, email, confirmasenha) values ('', '', 'M', 'F', '', 'S', 'C', 'D', '', '', '', '', '', '', '', '', '', '')
田地" sexo"和"民间"正在重复。如何输入只读取一次单选按钮?
答案 0 :(得分:1)
这是因为你正在迭代每个文本字段,如果你有3个单选按钮,你将所有3个值推送到数组,所以我把2个无线电字段sexo和民用外部循环所以它只会被推送一次而不是重复。
$("input").each(function(){
if(id!='sexo' || id!='civil'){
var id = $(this).attr("name");
var value = $(this).val();
var item = {};
item ["name"] = id;
item ["value"] = value;
form.push(item);
}
});
var value1 =$('input:radio[name=sexo]:checked').val();
var value2 =$('input:radio[name=civil]:checked').val();
var item = {};
item ["name"] = "sexo";
item ["value"] = value1;
form.push(item);
var item = {};
item ["name"] = "civil";
item ["value"] = value2;
form.push(item);
return JSON.stringify(form);
答案 1 :(得分:0)
如果您在jQuery表单元素上调用serializeArray
,您将获得一个对象数组,类似于您正在创建的对象数组,并且将避免重复:
$('form').serializeArray();
将返回:
[
{
name: "firstfield",
value: "1"
},
{
name: "secondfield",
value: "2"
}
]