繁体   English   中英

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

[英]What is the best way to get all form inputs data with jQuery?

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

检索所有值的最佳方法是什么? 我的意思是在所有字段中放置一个ID或在javascript/jquery序列化form

代码很常见。

<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>

您只需执行以下操作即可获取成功输入的值:

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

这将创建一个查询字符串,该字符串将与HTTP请求一起发送

相反,如果您希望将值存储在数组中,则可以执行以下操作:

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

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

不,不是ID,而是name属性应该存在,因为所有输入要进行序列化都是必需的。

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

var frmData = $('#formId').serialize(); // produces queryString '?name=value&name=value'
var frmData = $('#formId').serializeArray(); // produces array [{name:name, value:value}]

这是新的,这是直接用模型映射您的字段名称

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

在ajax部分

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM