使用jquery获取数组的值

假设我有这样的forms:

Field A Field B

我有一个jquery函数,复制我点击“添加表单”按钮时的输入。 所以,关于这一点,我试图用jquery的.val()方法保存输入的值。

所以,如果我有这样的输入:

  

我知道这个:

 var v = $('#teste').val(); 

我可以收到她的价值。 但是,如果我有一个输入数组,这是我的情况因为我可以复制表单的字段,我如何从以下输入中获取多个值?

   

var v = $(’#field [iterator] [a]’)。val(); 不起作用,导致’未定义’。

jquery函数,我无法使用val()从输入中获取值; 给出undefined:

 $countForms = 1; (function($){ $.fn.addForms = function(idform){ var myform = ""+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ "
Field A ("+$countForms+"):Field B ("+$countForms+"):
"; if(idform=='mybutton'){ myform = $(myform); $("button", $(myform)).click(function(){ $(this).parent().parent().remove(); }); $(this).append(myform); $countForms++; } }; })(jQuery); $(function(){ $("#mybutton").bind("click", function(e){ e.preventDefault(); var idform=this.id; if($countForms<3){ $("#container").addForms(idform); } }); });

方括号在jQuery选择器中使用,我们应该使用转义字符在控件的id中包含方括号;

现场演示

 iterator = 0; $('#field\\['+iterator +'\\]\\[a\\]').val();​ 

字符“[”在jquery选择器中不是中性的:

$('#field[0][a]')表示:“选择具有id”字段“的项目,并且还有一个名为’0’的属性,以及另一个名为’a’的属性”

您可以 :

  • 要么改变你的方式给你的字段id,比如: id="field_0_a" ,从而让$('#field_0_a')正常工作,
  • 或按名称选择项目: $('[name="field[0][a]"]')
  • 或者像阿迪尔说的那样

将一个类添加到输入并执行此操作

 jQuery(document).ready(function($){ $('.inputs').each(function(index, object){ console.log($(object).val()); }); }); 

在您的代码上,您需要在此更改:

 var v = $('#field[iterator][a]').val(); 

至:

 var v = $('#field\\['+iterator+'\\]\\[a\\]').val(); 

问题是您必须转义特殊字符,如下所示:

$('[id="field[' + iterator + '][b]"]').val();
要么
$('#field\\[' + iterator + '\\]\\[b\\]').val();
演示