如何从动态数组类型字段获取值


How to get values from a dynamic array type field

我有一个关于动态生成字段的问题。这些字段有不同的类型,它们的类型取决于数据库中存储的内容(文本、选择、无线电等)。它们是在我的PHP脚本中生成的,它们具有相同的名称(ans[],这是一个数组)。

<input type='radio' name='ans[]' value='1'>
<input type='radio' name='ans[]' value='2'>
<input type='radio' name='ans[]' value='3'>
<select name='ans[]'>
    <option value='desktop'>Desktop</option>
    <option value='laptop'>Laptop</option>
    <option value='monitor'>Monitor</option>
    <option value='printer'>Printer</option>
</select>
<input type='text' name='ans[]' value=''>

我想使用JQuery获得每个字段的输入值。这可能吗?

$("[name=ans''['']]").each(function() {
  alert( $(this).val() );
});

应该可以。

JSFiddle

有许多方法可以使用jQuery获取字段值,而不依赖于id或类(尽管它们通常是最好的方法)。

您可以根据字段在DOM中的位置选择字段:

CSS nth-child

(http://www.w3schools.com/cssref/sel_nth-child.asp)

$('form#myform input:nth-child(2)')

jQuery . each

(http://api.jquery.com/jQuery.each/)

$('form#myform input).each( function(){ /* functionality here */ });

这依赖于以固定顺序生成的字段。如果为每个PHP数组项生成一个标签,并用它来标识各个字段,情况会怎样呢?