Jquery 如何获取表单中所有输入的值

Jquery 如何获取表单中所有输入的值,jquery,forms,input,Jquery,Forms,Input,代码: 当我们不知道输入的id时,有人知道如何获取值吗?类似的方法应该会奏效 var value5=$newform.findinput.get5.val 我想有几种方法,取决于你将如何处理它 例如,您可以选择表单中的所有输入: $('form input') 这将返回一个表示所有输入的jQuery对象数组。然后可以循环遍历该数组,并获取每个数组的.val 另一种选择可能是将整个表单序列化为JSON对象: var data = $('form').serialize(); 然后,您可以根据需

代码:


当我们不知道输入的id时,有人知道如何获取值吗?

类似的方法应该会奏效

var value5=$newform.findinput.get5.val


我想有几种方法,取决于你将如何处理它

例如,您可以选择表单中的所有输入:

$('form input')
这将返回一个表示所有输入的jQuery对象数组。然后可以循环遍历该数组,并获取每个数组的.val

另一种选择可能是将整个表单序列化为JSON对象:

var data = $('form').serialize();
然后,您可以根据需要操作JSON对象数据或从中提取值。

您可以使用jQuery函数

给表单一个id,例如测试表单,然后您可以执行以下操作:

var formValues = $('#test-form').serialize();
var inputValues = $("#newform .form-group input:text").map(function() {
    return this.value;
}).get();
尝试:

或:


看起来您正在使用jQuery

 $('form[name="newForm"]').serializeArray();
这将生成一个如下所示的数组:

[{name:'test1', value:'value1'},...]
请参阅。

您可以执行以下操作:

var formValues = $('#test-form').serialize();
var inputValues = $("#newform .form-group input:text").map(function() {
    return this.value;
}).get();

如果需要一个值数组,可以通过链接到以下位置从元素中投影这些值:


有很多选择

按标签

使用$'input'获取整个页面上的所有输入。这不受任何特定形式的限制

组合选择器

您可以组合选择器,$'input,select'

试试看:

按标记,在元素内

可以使用find从特定元素检索所有输入。例如:

$'myForm'。查找'input'

您还可以将此方法与组合选择器结合使用:

$'myForm'。查找'input,select'

使用form.elements集合

有一个元素集合,使用$'myForm'.elements访问

通过给所有元素一个类

这是最灵活的选项,请使用$'.MylementClass'

连载

jQuery提供了一种序列化表单数据的方法;它将以字符串格式为您提供可用于请求的所有元素的列表

$'myForm'。序列化输出,例如此url编码字符串:myElementA=my+input&myElementB=my+input+c&myElementC=my+input+c

$'myForm'。serializeArray类似,但您得到的是一个对象,而不是字符串,其中form元素名称是与当前值对应的键。它看起来是这样的:

{myElementA:my input,myElementB:my input b,myElementC:my input c}

结论

总之,这是jQuery的基本用法。我建议您坐下来阅读手册和一些教程,以扩展jQueryFoo

文件

jQuery基础知识- jQuery.find- jQuery.serialize- 使用AJAX和jQuery提交表单见示例- jsFiddle:


你想要什么,一个数组?你想知道输入ID,为什么要解析它呢?当然,你不能笼统地说对象,但在形式上你是非常具体的。@DavidThomas如果我真的想分别得到每个值的话。但数组也会很好。@Jonast92在我的测试代码中,所有输入都有id,但是当我们不知道id输入时,如何得到它们的值呢?请解释您想要的最终结果,然后我们将解决如何帮助您获得它。否则我们只是在猜测,根据我们所知道的将会或能够起作用。@Stranik Oops,漏掉了一个“t”!应修复。第二个代码段将返回未选中复选框的值,这可能是不需要的。
 $('form[name="newForm"]').serializeArray();
[{name:'test1', value:'value1'},...]
var inputValues = $("#newform .form-group input:text").map(function() {
    return this.value;
}).get();
var values = $("input[type=text]").map(function() {
    return this.value;
}).get();
$('input.form-control').each(function() {
    alert($(this).attr('name') + " = " + $(this).val()); 
});