-1

ユーザーがフォームに要素を追加できるHTMLフォームがありますが、要素の各行の横に「削除」ボタンがあります。このボタンはjQuery呼び出しにリンクされていますが、新しく追加された要素ボタンをクリックしても削除されませんが、元々 HTML にハードコードされていた要素は削除されます。

これが私のコードです:

$("[data-action]").each(function(i,a){
$(a).bind('click',function(){
    switch ($(a).attr("data-action")) {
        case "AddQualificationField":
            qual_add_current++;
            var qual_add_html = '<div id="AddQualification' + qual_add_current + '" class="controls inline" style="margin-top: 5px;">' +
                        '<label for="AddQualificationType[' + qual_add_current + ']">Type:</label> <input type="text" name="AddQualificationType[' + qual_add_current + ']" id="AddQualificationType[' + qual_add_current + ']" placeholder="e.g. \'A\' Level" class="input-small" maxlength="75" /> ' +
                        '<label for="AddQualificationSubject[' + qual_add_current + ']">Subject:</label> <input type="text" name="AddQualificationSubject[' + qual_add_current + ']" id="AddQualificationSubject[' + qual_add_current + ']" class="input-small" maxlength="75" /> ' +
                        '<label for="AddQualificationGrade[' + qual_add_current + ']">Grade:</label> <input type="text" name="AddQualificationGrade[' + qual_add_current + ']" id="AddQualificationGrade[' + qual_add_current + ']" class="input-small" maxlength="20" /> ' +
                        '<button type="button" class="btn" data-action="RemoveQual" data-qualid="' + qual_add_current + '"><i class="icon-remove"></i></button>' +
                    '</div>';
            $("fieldset#AddQualifications").append(qual_add_html);
            break;

        case "RemoveQual":
            var qual_id = parseInt($(a).attr("data-qualid"));
            if (confirm("Are you sure that you want to do this?")) {
                $("div#AddQualification" + qual_id).remove();
            }
            break;
    }
  });
});
4

3 に答える 3

0

DOM ツリーに動的に追加する要素を再バインドする必要があります。最初のbind()呼び出しは、現在ドキュメントにある要素のみをバインドします。後に追加された要素は考慮されません。

于 2013-08-10T20:39:45.890 に答える
0

動的に作成された要素を削除するには、Jquery Onメソッドを使用する必要があります。

于 2013-08-10T20:35:41.653 に答える
0

お尻の痛みになって申し訳ありませんが、私はそれを自分で修正することができました - あなたの助けに感謝します.

onclick="javascript:RemoveQual(' + qual_add_current + ');"削除ボタンで使用しました。

于 2013-08-10T20:41:23.737 に答える