使用JQuery选择表单数组值

时间:2010-01-15 16:58:03

标签: php javascript jquery

我有一个使用下面的PHP动态生成的表单($theFeatures是一个多维数组):

<?php 
foreach($theFeatures as $theKey => $theValues) {
?>
    <input type="text" value="<?php echo $theValues['Key']; ?>" name="theFeatures[<?php echo $theKey; ?>]['Key']" size="6" />
    <input type="text" value="<?php echo $theValues['Value']; ?>" name="theFeatures[<?php echo $theKey; ?>]['Value']" /> <br />
<?php
}
?>

这应该创建两个如下所示的输入框:

<input value="Type" name="theFeatures[4]['Key']" size="6" type="text" />
<input value="Bird Table" name="theFeatures[4]['Value']" type="text" />

如何在jQuery中获取数组的第一部分(上例中为[4]),这样我就可以将其存储为JavaScript变量并将其用于我的jQuery?

干杯,

安迪

2 个答案:

答案 0 :(得分:3)

您可以尝试将值存储在输入的单独属性中,然后使用jQuery检索该属性。

将新属性添加到输入

<input type="text" value="<?php echo $theValues['Key']; ?>" name="theFeatures[<?php echo $theKey; ?>]['Key']" size="6" key="<?php echo $theKey; ?>"/>

使用jQuery检索属性

var key = $("input").attr("key");

答案 1 :(得分:1)

当然,T B的建议可行。您还可以执行以下操作以获取名称中包含“Key”的所有输入框,并在第一组方括号中获取值。这将获得名称包含Key的任何输入对象。

$("input[name*=Key]").each(function() {
    var name = $(this).attr("name");
    var key = name.substring(name.indexOf("[") + 1, name.indexOf("]");
    //do whatever is needed with key
 });