使用 jquery 从表单中检索数据

Retrieve data from a form using jquery

本文关键字:检索 数据 表单 jquery 使用      更新时间:2023-09-26

我正在尝试从表单中获取信息并将其传递给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"和"civil"字段正在重复。如何使输入仅读取单选按钮 1 次?

这是因为您正在迭代每个文本字段,如果您有 3 个单选按钮,您将所有 3 个值推送到数组,所以我取了 2 个无线电场 sexo 和 Civil 外部循环,因此它只会被推送 1 次,而不会重复。

$("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);

如果你在jQuery表单元素上调用serializeArray,你会得到一个对象数组,类似于你正在创建的对象数组,并且会避免重复:

$('form').serializeArray();

将返回:

[
  {
    name: "firstfield",
    value: "1"
  },
  {
    name: "secondfield",
    value: "2"
  }
]