单击按钮后克隆整个表单元素

时间:2013-10-28 15:20:50

标签: javascript jquery html forms

我有以下表格

<form action="" class="form-horizontal">
<div id="wrapper">
    <div class="row-fluid">
        <div class="span6">
            <div class="control-group">
                <label class="control-label"><?=$core->l("default_comm_type");?></label>
                <div class="controls">          
                    <select id="fld_default_comm_type" name="fld_default_comm_type[]" defaultValue="-1" class="m-wrap span10" field="fld_default_comm_type" appEditor="true">
                        <?=combo_creator::render_default_comm_types()?>
                    </select>
                </div>
            </div>
        </div>
        <div class="span4 checkerAlign">
            <div class="control-group">
                <div class="controls">
                    <?=$core->l("is_active");?> 
                </div>
            </div>
        </div>
        <div class="span2 checkerAlign"><input type="checkbox" name="fld_active[]" id="fld_active" editType="booleanEdit" appEditor="true"/></div>
    </div>
    <div><a href="#" id="addMore">Add Row</a></div>
</div>

问题是当用户单击“添加行”按钮时,我需要在

中创建此表单元素的副本
<div id="wrapper">

我该怎么做?

编辑:已解决

<form action="" class="form-horizontal" id="wrapper">
<div class="row-fluid">
    <div class="span6">
        <div class="control-group">
            <label class="control-label"><?=$core->l("default_comm_type");?></label>
            <div class="controls">          
                <select id="fld_default_comm_type" name="fld_default_comm_type[]" defaultValue="-1" class="m-wrap span10" field="fld_default_comm_type" appEditor="true">
                    <?=combo_creator::render_default_comm_types()?>
                </select>
            </div>
        </div>
    </div>
    <div class="span4 checkerAlign">
        <div class="control-group">
            <div class="controls">
                <?=$core->l("is_active");?> 
            </div>
        </div>
    </div>
    <div class="span2 checkerAlign"><input type="checkbox" name="fld_active[]" id="fld_active" editType="booleanEdit" appEditor="true"/></div>
</div>
<a href="#" id="addMore">add</a>
</form>

在Js部分:

jQuery("#addMore").click(function(){
 var contents = jQuery("form").html();
    jQuery("#wrapper").append(contents);
});

单击添加时,它会按照我的意愿插入表单元素 当单击删除时,它会删除元素。谢谢你们的提示 问题解决了!谢谢你们。

3 个答案:

答案 0 :(得分:4)

我认为您需要复制(row-fluid)的内容,而不是整个(Wrapper)内容,这可以让您在点击{{1时添加原始表单模板的更多行链接。

这是@ user2389688建议的解决方案的编辑:

AddMore

JsFiddle链接: http://jsfiddle.net/tCY8v/1/

答案 1 :(得分:1)

这样的东西?

$("#addMore").click(function(){
   var contents = $("form").html();
   $("#wrapper").append(contents);  
});

http://jsfiddle.net/tCY8v/

如果我确实理解了你的问题。

答案 2 :(得分:0)

例如:

$('#addMore').click(function() {
    $('.row-fluid').eq(0).clone().insertBefore(this);
});