使用jQuery获取所有表单输入数据的最佳方法是什么?

时间:2015-12-24 11:58:58

标签: javascript jquery forms

假设我有一个带有id的表单以及所有输入,复选框,无线电等字段。

检索所有值的最佳方法是什么?我的意思是为所有字段添加ID或序列化form中的javascript/jquery

代码很常见。

<head>
<script src="jquery.min.js"></script>
</head>
<form id="f1">

    <input type="text" name="firstname">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse">
    <br><br>
<input type="button" id="b1"value="Submit">
<input type="checkbox" name="cb[]" value="1"/>
<input type="checkbox" name="cb[]" value="2"/>
<input type="checkbox" name="cb[]" value="3"/>
</form>
<script>
$(document).ready(function(){
    $("#b1").click(function(){
    //console.log($("#f1").serializeArray());    

    var requestObj = {};
var formObj = $(this).closest("form");
$.each($(formObj).serializeArray(), function (index, value) {
    requestObj[value.name] = value.value;
});
console.log(requestObj);
    })

});
</script>

3 个答案:

答案 0 :(得分:4)

您可以获得成功的输入&#39;只需这样做就可以了:

var stringData = $('#form-id').serialize();

这将创建一个意味着与HTTP请求一起发送的查询字符串

相反,如果您想要存储在数组中的值,您可以这样做:

var arrayData = $('#form-id').serializeArray();

答案 1 :(得分:1)

我的意思是将id放到javascript / jquery中序列化表单的所有字段中?

不,不是ID,而是fatal error: unexpectedly found nil while unwrapping an Optional value属性必须存在,因为序列化的所有输入都需要这样。

您可以使用您选择的两种方法:

name

答案 2 :(得分:1)

以下是一些新内容,这是使用模型

直接映射您的字段名称
var requestObj = {};
var formObj = $($this).closest("form");
$.each($(formObj).serializeArray(), function (index, value) {
    requestObj[value.name] = value.value;
});

和ajax部分

data: JSON.stringify({ objectName: requestObj }),