我的用例是这样的:
我有几个input
:
<label class="minilabel">Field1</label><input type="text">
...
<label class="minilabel">FieldN </label><input type="text">
我必须获取每个value
的{{1}},然后通过input
发送(AJAX
请求)。
通常我会为每个post
设置一个ID
,然后通过input
.. $("#id1").val()
检索它,但它很复杂。有另一种获取这些值的方法吗?
答案 0 :(得分:6)
$('form').serialize();
...是你的朋友。这会将表单中的所有数据转换为您作为数据属性传入的查询字符串。
理想情况下,我会将元素包装在一个表单中(除非这些是动态创建的),因为您可以在发送AJAX POST请求时引用“action”属性,并且该页面也符合HTML4 / 5标准。像这样:
var $form = $('form');
$.ajax({
"type": "POST",
"url": $form.attr('action'),
"data": $form.serialize(),
"success": function (r) {
}
});
另一方面,您还可以使用以下简单的方法将收集的输入元素的jQuery对象序列化:
$(":input").serialize();
(感谢Dziamid提供此信息)
答案 1 :(得分:0)
答案 2 :(得分:0)
如果你决定使用jQuery .each() 你可以这样做:
var value = '';
$('input[type=text]').each(function() {
// get input value
value = $(this).val();
// do whatever you need with the value
// save in array to send later to server for example
// ...
});