代码:
<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())
,但是当我们不知道{时,如何从表单的开头顺序获取输入值{1}}输入?
对于我的测试代码,我可以使用代码获得价值:
id
当我们不知道输入var value1 = $("test1").val();
var value2 = $("test2").val();
var value3 = $("test3").val();
var value4 = $("test4").val();
var value5 = $("test5").val();
时,有没有人对如何获取值有任何想法?
答案 0 :(得分:9)
尝试:
$('form').serialize();
或:
var values = [];
$('input').each(function() {
values.push($(this).val());
});
答案 1 :(得分:3)
看起来你正在使用jQuery。
$('form[name="newForm"]').serializeArray();
这会产生一个类似于:
的数组[{name:'test1', value:'value1'},...]
答案 2 :(得分:3)
jsFiddle:http://jsfiddle.net/Yw4Hc/3/
$('input.form-control').each(function() {
alert($(this).attr('name') + " = " + $(this).val());
});
答案 3 :(得分:2)
有很多选择。
按标记
使用$('input')
获取整个页面上的所有输入。这不受任何特定形式的限制。
组合选择器
您可以组合选择器$('input,select')
试一试:http://jsfiddle.net/s5jgd/
按标记,在元素
中您可以使用find
检索特定元素的所有输入。例如:
$('#myForm').find('input');
您也可以将此方法与组合选择器一起使用:
$('#myForm').find('input,select');
使用form.elements
集合
有一组元素,可通过$('#myForm').elements
通过为所有元素提供类
这是最灵活的选项,请使用$('.myElementClass')
<强>序列化强>
jQuery提供了一种序列化表单数据的方法;它将为您提供可用于请求的字符串格式的所有元素的列表。
$('#myForm').serialize()
输出(例如)此网址编码的字符串: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。
<强>文档强>
jQuery.find
- http://api.jquery.com/find/ jQuery.serialize
- http://api.jquery.com/serialize/ 答案 4 :(得分:1)
您可以使用jQuery each()
函数
$(".form-control").each(function(){
var value = $(this).val();
});
答案 5 :(得分:1)
给form
一个id(例如test-form
)然后你可以这样做:
var formValues = $('#test-form').serialize();
答案 6 :(得分:1)
如果您想要一组值,可以将它们从<input>
元素投影到map()链接到get():
var values = $("input[type=text]").map(function() {
return this.value;
}).get();
答案 7 :(得分:0)
我想,有几种方法,取决于你将要用它做什么。
例如,您可以选择表单中的所有输入:
$('form input')
这将返回表示所有输入的jQuery对象数组。然后你可以遍历那个数组并获得每个数组的.val()
。
另一种选择可能是将整个表单序列化为JSON对象:
var data = $('form').serialize();
然后您可以根据需要操纵该JSON对象(data
),或根据需要从中提取值。
答案 8 :(得分:0)
你可以这样做:
var inputValues = $("#newform .form-group input:text").map(function() {
return this.value;
}).get();
答案 9 :(得分:-1)
类似的东西应该有效。
var value 5 = $(“#newform”)。find(“input”)。get(5).val();