0

我有一个表单,我需要根据用户的需要动态添加尽可能多的文本字段。我希望文本字段是一个数组,例如:

<input type="text" name="room_text[]">

我已经构建了一些我认为可行的东西。它成功地添加了更多的文本框。我用 javascript 动态添加了两个文本框,使表单看起来像这样:

<input type="text" name="room_text[]">
      <input type="text" name="room_text[]">
      <input type="text" name="room_text[]">

但是,当我将它发布到 PHP 文件时,它只获得第一个值。我知道这是一个 javascript 问题的原因是因为如果您在页面加载时有多个文本框,它可以正常工作。只是当您使用 javascript 添加更多文本框时。

如果这有帮助,这是我用来添加框的 jquery 函数:

$('.add').live("click", function() {
    var mu = $(this).parent('td').parent('tr');
    var clone = $(this).parent('td').parent('tr').clone();
    $(clone).children('td').children('.add').remove();
    $(clone).children('td').children('.redtext').remove();
    $(clone).children('td').children('.remove').css("display", "inline");
    $(clone).css("display", "none");
    $(mu).after(clone);
    $(clone).show("fast");
});
4

1 回答 1

1

我相信问题出在.clone()功能上。你能不能试试不同的方法,比如说...

$('.add').live("click", function() {
    var mu = $(this).parent('td').parent('tr');
    var clone = '<tr>' + $(this).parent('td').parent('tr').html() + '</tr>';
    $(clone).children('td').children('.add').remove();
    $(clone).children('td').children('.redtext').remove();
    $(clone).children('td').children('.remove').css("display", "inline");
    $(clone).css("display", "none");
    $(mu).after(clone);
    $(clone).show("fast");
});

更新- 哎呀。在那个版本中,“克隆”是一个字符串,而不是一个元素,所以这些.children()函数不起作用......这是一个更正的版本:

$('.add').live("click", function() {
    var mu = $(this).parent('td').parent('tr');
    var clone = $('<tr>' + $(mu).html() + '</tr>');
    $(clone).children('td').children('.add').remove();
    $(clone).children('td').children('.redtext').remove();
    $(clone).children('td').children('.remove').css("display", "inline");
    $(clone).hide();
    $(mu).after(clone);
    $(clone).show("fast");
});​
于 2012-04-04T14:15:41.537 回答