我有一个关于动态生成字段的问题。这些字段有不同的类型,它们的类型取决于数据库中存储的内容(文本、选择、无线电等)。它们是在我的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)')
(http://api.jquery.com/jQuery.each/)
$('form#myform input).each( function(){ /* functionality here */ });
这依赖于以固定顺序生成的字段。如果为每个PHP数组项生成一个标签,并用它来标识各个字段,情况会怎样呢?