-1

我的用例是这样的:我有几个input

  <label class="minilabel">Field1</label><input type="text">
  ...
  <label class="minilabel">FieldN </label><input type="text">

我必须得到value每个input然后通过AJAXpost请求)发送它。通常我ID为每个设置一个然后我通过..input检索它,但它是如此复杂。有另一种获取这些值的方法吗?$("#id1").val()$("#idN").val()

4

3 回答 3

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 提供此信息)

于 2013-04-05T09:47:57.697 回答
0

您正在搜索.serialize()

在服务器端

$params = array();
parse_str($_GET, $params);

$params 应该是一个数组

于 2013-04-05T09:54:23.323 回答
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
  // ...
});
于 2013-04-05T11:19:38.803 回答