0

配列名で動的フィールドを追加しようとしていますが、次のようにしました

<div class="extra_subject"></div>
<button class="add_sub btn">Add</button>
<button class="rem_sub btn">Remove</button>

JSで私はやった

var subject_div = $('<div class="sub_add_extra">'
    +'<div class="control-group">'
        +'<label for="sub_form" class="control-label">Subject</label>'
        +'<div class="controls">'
            +'<select name="add_subject[]">'
                +'<option value="">Please Select</option>'
                 <?php foreach($sub as $row){ ?>
                    +'<option value="<?php echo $row->id; ?>" ><?php echo $row->subject_name; ?></option>'
                <?php } ?>
            +'</select>'
        +'</div>'
     +'</div>'
+'</div>');
$('.add_sub').click(function(e){
    e.preventDefault();
    $('.extra_subject').append(subject_div);
});
$('.rem_sub').click(function(e){
    e.preventDefault();
    $('.sub_add_extra').last().remove();
});

初めてコンテンツを追加してから、既存の div をクラス.sub_add_extraで上書きして追加しようとすると、削除ボタンをクリックすると適切に削除されます。

4

2 に答える 2

4

使用するclone()

$('.add_sub').click(function(e){
    e.preventDefault();
    $('.extra_subject').append(subject_div.clone());
});

デモはこちら 現在、同じオブジェクトを何度も追加しています。clone()そのオブジェクトの複製を作成し、この複製されたオブジェクトを毎回追加します。元のオブジェクトにイベントが関連付けられている場合は、次を使用しますclone(true)

于 2013-07-30T10:21:29.483 に答える
1

このような関数を作成してみてください。クリックすると確実に機能します

function addmoreoption() {
    var html_option = '<tr valign="center"><td valign="center" bgcolor="#E8E8E8" >Name</td></tr>';
    $('#more_option').append(html_option);
}
于 2013-07-30T10:20:46.777 に答える