获取表中动态生成的文本字段的值和ID

时间:2012-03-23 14:22:37

标签: javascript jquery

我有一个动态填充的表,每行包含两个可以编辑的文本字段。当用户单击保存按钮时,我想读取那些输入的值并相应地更新:

echo "<td><input value='".$row[0]."' type='hidden'>$sql1[0]</td><td>$sql1[1]</td>
    <td><input type='text' id='disc-".$row[0]."' value='".$row[3]."'></td>

$row[0]是数据库中该行的ID,$row[3]是当前存储的值。我想要实现的是,一旦用户点击保存,我会根据ID读取用户在文本字段中输入的值,以便可以更新。因为它有一个选择这些元素的JavaScript:

for(var i = 0; i < $('#order_basket [id |= "disc"]').length; i++) {
    alert($('#order_basket [id|="disc"]')??.val());
}

现在返回的长度是正确的,但我正在尝试读取id和将进一步存储在数组中的值。

注意:同一行中有多个文本字段,另一个文本字段有id='disc-".$row[0]."'

2 个答案:

答案 0 :(得分:2)

试试这个。

var values = {};
$('#order_basket input[id^="disc"]').each(function(){
     values[this.id] = this.value;
});

现在values对象将包含每个输入元素的id / value对

请注意,我使用属性begin with selector ^=来查找所有输入元素

根据OP的评论进行更新。

var ids = [], values = [];
$('#order_basket input[id^="disc"]').each(function(){
     ids.push(this.id);
     values.push(this.value);
});

答案 1 :(得分:0)

您还可以使用类名:

<td><input type='text' class="field1" id='disc-".$row[0]."' value='".$row[3]."'></td>

然后您可以使用以下方式查询:

   alert($('.field1').val())

或:

alert($('.field1').attr('id')

您可以检查是否有多个(因为类名不需要是唯一的)

alert($('.field1').length)

然后,您可以使用for循环或.each()

循环遍历值