使用jquery获取数组的值
假设我有这样的forms:
我有一个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="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();
演示