我有以下包含许多行的表单(访问者可以通过单击按钮添加新行)。我想将所有条目添加到数组中以通过$ .ajax发送。
这是表格:
<li class=aff class=gastosRow>
<label>Descripción</label>
<input class=gastosDescrizione type=text size=30>
</li>
<li>
<label>Importe</label>
<input class=gastosImporto type=text>
</li>
这是应该保留所有条目的数组:
var gastosArray = [];
$('.gastosRow, .aff').map(function(){var row = $(this);
gastosArray.push({descrizione: row.find('.gastosDescrizione').val(), importo: row.find('.gastosImporto').val()});
});
但阵列的结果不是我想要的。我希望每行(gastosArray[])
,gastosDescrizione
的值和gastosImporto
的值。它现在不起作用,仅列出gastosDescrizione
...
答案 0 :(得分:2)
在看到您的标记时,您正在使用当前选择旁边的类gastosImporto
的文本框,因此请尝试在您的案例中使用.next()
来实现您所需的内容。
尝试,
<li class='gastosRow aff'>
<label>Descripción</label>
<input class=gastosDescrizione type=text size=30>
</li>
<li>
<label>Importe</label>
<input class='gastosImporto' type=text>
</li>
JS:
var gastosArray = [];
$('.gastosRow,.aff').each(function(){
var row = $(this);
gastosArray.push({
descrizione: row.find('.gastosDescrizione').val(),
importo: row.next().find('.gastosImporto').val()
});
});
答案 1 :(得分:1)
您可以使用map
和get
:
var gastosArray = $('.gastosRow, .aff').map(function () {
return {
descrizione: $(this).find('.gastosDescrizione').val(),
importo: $(this).find('.gastosImporto').val()
}
}).get();