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

ste*_*teo -1 javascript ajax jquery input

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

  <label class="minilabel">Field1</label><input type="text">
  ...
  <label class="minilabel">FieldN </label><input type="text">
Run Code Online (Sandbox Code Playgroud)

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

mar*_*yzm 6

$('form').serialize();
Run Code Online (Sandbox Code Playgroud)

...是你的朋友.这会将表单中的所有数据转换为您作为数据属性传入的查询字符串.

我理想情况下会将元素包装在一个表单中(除非这些是动态创建的),因为您可以在发送AJAX POST请求时引用"action"属性,并且该页面也符合HTML4/5标准.像这样的东西:

var $form = $('form');
$.ajax({
    "type": "POST",
    "url": $form.attr('action'),
    "data": $form.serialize(),
    "success": function (r) {

    }
});
Run Code Online (Sandbox Code Playgroud)

另一方面,您还可以使用以下简单的方法将收集的输入元素的jQuery对象序列化:

$(":input").serialize();
Run Code Online (Sandbox Code Playgroud)

(感谢Dziamid提供此信息)