使用jquery动态添加表行,然后在每个新行中添加auto populate选择框

时间:2010-07-30 16:35:24

标签: javascript jquery forms auto-populate

嘿,伙计们,我昨天试着问这个问题,但我没有说清楚或者说得太清楚。

我有一个在表格中设置的表单。用户可以随意添加新行(以及更多表单元素)。此表单的每一行都需要有自己独立的选择框和相应的子类别选择框。

所以基本上......

姓名|选择
xxxxxx | [类别选择] [子类别选择]
xxxxxx | [类别选择] [子类别选择]
xxxxxx | [类别选择] [子类别选择]

你明白了。 :)

现在添加的任何行都有自动填充的损坏版本。

有关如何使其发挥作用的任何建议吗?

这是自动填充代码并添加我正在使用的表格行代码,如果这有助于任何人的大脑。如果有人得到他们认为更好的答案,我会很乐意废弃一切。

我可以添加/删除表单行的解决方案的免费cookie。 :)

// auto populate select code

 $(document).ready(function(){
            $("#selectionresult").hide();

            $("#selection").change( function() {
                $("#selectionresult").hide();
                $("#result").html("Retrieving ...");
                $.ajax({
                    type: "POST",
                    data: "data=" + $(this).val(),
                    url: "include/javascript_population.php",
                    success: function(msg){
                        if (msg != ""){
                            $("#selectionresult").html(msg).show();
                            $("#result").html("");
                        }
                        else{
                            $("#result").html("<em>No item result</em>");
                        }
                    }
                });
            });
        });


// add table row code

  $(document).ready(function() {
        $("#add").click(function() {
          $('#mytable tbody>tr:last').clone(true).insertAfter('#mytable tbody>tr:last');

          return false;
        });
    });

    $("#mytable tbody>tr:last").each(function() {this.reset();});     

任何帮助都会得到所有人的赞赏。提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

您可能在ID的冲突和事件绑定方面遇到问题。尝试使用live();

当您克隆并移动DOM元素时,您的事件将被解除绑定。

试试这个:

$("#add").live("click", function() {
$("#selection").live("change", function() {

此外,您可能正在复制ID。检查并确保没有克隆#selection,#selectresult等。