数组中的Javascript/JQuery保存表单字段
我有一个from,其中有几个文本输入,如下所示:数组中的Javascript/JQuery保存表单字段,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个from,其中有几个文本输入,如下所示: <input name="option[][<?php echo $cmd1; ?>]" type="text"> <input name="option[][<?php echo $cmd2; ?>]" type="text"> <input name="option[][<?php echo $cmd3; ?>]" type="text"> <input name=
<input name="option[][<?php echo $cmd1; ?>]" type="text">
<input name="option[][<?php echo $cmd2; ?>]" type="text">
<input name="option[][<?php echo $cmd3; ?>]" type="text">
<input name="option[][<?php echo $cmd4; ?>]" type="text">
[..]
如果您的HTML
是option[]
而不是option[][]
之类的
<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">
<input name="option[<?php echo $cmd3; ?>]" type="text">
<input name="option[<?php echo $cmd4; ?>]" type="text">
使用.push()
.push()是一个函数,它在数组的末尾添加一个元素并分别展开数组。
将所有输入值(在表单中)推送到数组
var myarray = [];
$('#form').find(':input').each(function(){
myarray.push($(this).val());
});
只需使用类,如下所示:
<input class="option" name="option[<?php echo $cmd1; ?>]" type="text">
<input class="option" name="option[<?php echo $cmd2; ?>]" type="text">
var options = [];
$('.option').each(function(){
options.push($(this).val());
});
虽然您已经接受了答案,但值得指出的是(假设您在适当的时间执行此操作,或在适当的事件发生后执行此操作),这可以通过两种相对简单的方式完成
使用jQuery:
var options = $('input[name^="option"]').map(function(){ return this.value; }).get();
或者使用纯JavaScript(现代浏览器):
你期望得到什么结果?包含所有输入值的数组(名称为选项为)感谢您的建议,但正如我在问题中所说的,我的输入量未定义,因此无法分配它们IDs@Ronnyvdb这两个代码示例是独立的。第二个将在#表单
元素中获取任何输入
,并将其值推送到数组中。为您的表单指定一个ID为form
,它应该可以工作。您好,我已将代码更改为您建议的代码,现在提交表单时如何访问选项数组?
<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">
var options = [];
$("input[name*='option']").each(function(){
options.push($(this).val());
});
var options = $('input[name^="option"]').map(function(){ return this.value; }).get();
var options = [].map.call[document.querySelectorAll('input[name^="option"]'), function(a){
return this.value;
});