2013-04-26 90 views
4

我对动态生成的字段有问题。这些字段有不同的类型,其类型取决于我的数据库(文本,选择,收音机等)上存储的内容。它们是在我的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获取每个字段的输入值。可能吗?

+0

为什么你用同一个名字?使用不同的 – 2013-04-26 03:01:44

回答

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

这应该有效。

JSFiddle

工作上面的示例。

+0

非常感谢,它为我工作。但我还有一个问题,从上面的例子中,每个单选按钮的所有值都被检索到。如果我只想选择其中之一呢? – rhy 2013-04-26 03:46:49

+0

就像选中的那个? – 2013-04-26 16:28:23

+0

您可能需要使用多个选择器: '$(“[name = ans \\ [\\]] [type!= radio]”)。each(function(){/ *做任何你想做的事与非无线电输入* /}'和 '$(“[name = ans \\ [\\]] [type = radio]:checked”)。each(function(){/ *输入* /}' 新JSFiddle:http://jsfiddle.net/VcZWy/2/ – 2013-04-26 16:36:18

1

有很多方法可以让你的字段值不依赖于ID或类(尽管它们通常是最好的方法)。

您可以根据自己的DOM位置选择字段:

CSS第n个孩子http://www.w3schools.com/cssref/sel_nth-child.asp

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

jQuery的。每个http://api.jquery.com/jQuery.each/

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

这依赖于以固定顺序生成的字段。如果您为每个PHP数组项目生成一个标签,并用它来标识您的各个字段,该怎么办?

+0

的值谢谢,我会试试这个。 – rhy 2013-04-26 03:47:11