代码之家  ›  专栏  ›  技术社区  ›  rg88

创建动态表单元素(具有递增的名称属性)

  •  1
  • rg88  · 技术社区  · 15 年前

    我有一个div看起来像这样:

    <div>

    <input type="text" name="title1" />

    <input type="text" name="body1" />

    <select name="photo1" size="1">

    <option value="0">foo</option>

    </select>

    </div>

    我想克隆它n次,并将名称值增加1 因此,例如,第二个div如下所示(仅名称值更改):

    <部门>

    <input type="text" name="title2" />

    <input type="text" name="body2" />

    <select name="photo2" size="1">

    <选项值=“0”>富</选项>

    </选择>

    <

    使用jquery克隆div很简单:

    $(document).ready(function(){
        $('.toClone').click(function(){
            $(this).clone(true).insertAfter(this);
         });
    });
    

    但是我在自动增加动态创建的div字段的name值时遇到了问题。
    有人知道怎么做吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Paolo Bergantino    15 年前

    你用什么来处理这件事?使用PHP可以命名字段 title[] , body[]

    $(document).ready(function(){
        $('.toClone').click(function(){
            var el = $(this).clone(true).insertAfter(this);
            var regex = new RegExp(/^(.+)(\d+)$/);
            $(el).find(':input').each(function() {
                var match = $(this).attr('name').match(regex);
                $(this).attr('name', match[1] + (++match[2]));
            });
        });
    });
    

        2
  •  2
  •   Rick Hochstetler    15 年前

    可以通过以下操作更改名称属性字段:

    var i = 1;
    $(this).clone(true).attr('name', 'title' + i).insertAfter(this);
    

    然后您只需要管理变量的递增。