使用 jquery 从表单中检索数据

Posted

技术标签:

【中文标题】使用 jquery 从表单中检索数据【英文标题】:Retrieve data from a form using jquery 【发布时间】:2015-03-18 20:30:15 【问题描述】:

我正在尝试从表单中获取信息并将其传递给 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 次?

【问题讨论】:

【参考方案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);

【讨论】:

这很好用,但不能解决我的问题。我想找到一种“性”和“公民”字段不重复的方式 我认为这可能是因为您正在遍历每个文本字段,并且如果您有 3 个单选按钮,则您将所有 3 个值推送到数组中,所以在上面的答案中,我在外面使用了 2 个单选字段 sexo 和 Civil循环所以只会推送1次,不会重复【参考方案2】:

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

$('form').serializeArray();

将返回:

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

【讨论】:

以上是关于使用 jquery 从表单中检索数据的主要内容,如果未能解决你的问题,请参考以下文章

通过 jQuery 修改的表单 - 无法检索多个字段值

dataType json 的 jQuery $.ajax 请求不会从 PHP 脚本中检索数据

我无法使用 PHP 和 jQuery 将表单数据更新到 MySQL

检索后数组值

从表单中检索信息以进行 PDO 查询的问题

在没有表单的情况下从 Django 中的 jQuery 检索 POST 数据