假设我有一个带有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>
答案 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 }),