3

代码:

<form name="newform" action="test.php" method="post"  class="form-horizontal input-prepend" id="newform">

  <div class="form-group">
    <label class="control-label" for="test1">test1</label>
    <input type="text" name="test1" class="form-control" id="test1" placeholder="">
  </div>

  <div class="form-group">
    <label class="control-label" for="test2">test2</label>
    <input type="text" name="test2" class="form-control" id="test2" placeholder="">
  </div>

<div class="form-group">
    <label class="control-label" for="test3">test3</label>
    <input type="text" name="test3" class="form-control" id="test3" placeholder="">
  </div>

<div class="form-group">
    <label class="control-label" for="test1">test4</label>
    <input type="text" name="test4" class="form-control" id="test4" placeholder="">
  </div>

<div class="form-group">
    <label class="control-label" for="test5">test5</label>
    <input type="text" name="test5" class="form-control" id="test5" placeholder="">
  </div>

</form>

为了得到一个输入的值,我们可以使用它的id,例如alert($("#test5").val()),但是当我们不知道id输入的 时,如何从表单的开头依次获取输入值呢?

对于我的测试代码,我可以使用代码获得价值:

var value1 = $("test1").val();
var value2 = $("test2").val();
var value3 = $("test3").val();
var value4 = $("test4").val();
var value5 = $("test5").val();

当我们不知道输入时,是否有人对如何获取值有任何想法id

4

10 回答 10

9

尝试:

$('form').serialize();

或者:

var values = [];
$('input').each(function() {
    values.push($(this).val());
});
于 2013-09-11T18:25:43.890 回答
3

看起来你正在使用 jQuery。

 $('form[name="newForm"]').serializeArray();

这会产生一个如下所示的数组:

[{name:'test1', value:'value1'},...]

请参阅jQuery 序列化数组

于 2013-09-11T18:26:34.103 回答
3

jsFiddle:http: //jsfiddle.net/Yw4Hc/3/

$('input.form-control').each(function() {
    alert($(this).attr('name') + " = " + $(this).val()); 
});
于 2013-09-11T18:41:17.413 回答
2

您可以使用 jQueryeach()函数

$(".form-control").each(function(){
  var value = $(this).val();
});
于 2013-09-11T18:25:16.743 回答
2

有多种选择。

按标签

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

组合选择器

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

试试看:http: //jsfiddle.net/s5jgd/

按标签,在元素内

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

$('#myForm').find('input');

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

$('#myForm').find('input,select');

使用form.elements集合

有一个元素的集合,通过$('#myForm').elements

通过给所有元素一个类

这是最灵活的选项,使用$('.myElementClass')

连载

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

$('#myForm').serialize()输出(例如)这个 url 编码的字符串:myElementA=my+input&myElementB=my+input+c&myElementC=my+input+c

$('#myForm').serializeArray()类似,但不是字符串,而是一个对象,其中表单元素名称作为与当前值对应的键。它看起来像这样:

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

结论

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

文档

于 2013-09-11T18:27:55.023 回答
1

给出form一个 id(例如test-form),然后你可以这样做:

var formValues = $('#test-form').serialize();
于 2013-09-11T18:25:29.010 回答
1

如果你想要一个值数组,你可以通过链接到get()的map()<input>从元素中投影它们:

var values = $("input[type=text]").map(function() {
    return this.value;
}).get();
于 2013-09-11T18:27:40.303 回答
0

我想有几种方法,这取决于你要用它做什么。

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

$('form input')

这将返回一个代表所有输入的 jQuery 对象数组。然后您可以遍历该数组并获取.val()每个数组。

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

var data = $('form').serialize();

然后,您可以随意操作该 JSON 对象 ( data) 或根据需要从中提取值。

于 2013-09-11T18:25:16.270 回答
0

你可以做:

var inputValues = $("#newform .form-group input:text").map(function() {
    return this.value;
}).get();
于 2013-09-11T18:27:37.610 回答
-1

与此类似的东西应该可以工作。

var value5 = $("#newform").find("input").get(5).val();

于 2013-09-11T18:25:15.667 回答