通过ajax发送输入值而不使用val()函数

时间:2013-04-05 09:47:13

标签: javascript jquery ajax input

我的用例是这样的: 我有几个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()检索它,但它很复杂。有另一种获取这些值的方法吗?

3 个答案:

答案 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)

您正在搜索.serialize()

在服务器端

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

$ params应该是一个数组

答案 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
  // ...
});