動的に行を追加するには、以下のフォームを作成しました。 +ボタンは完全に正常に動作していますが、Xボタン(動的に追加)から行を削除しようとすると、行を削除できず、 "Uncaught TypeError"が返されます。これはjavascriptとjqueryを使用します。javascriptを使用して動的に追加された行を削除できません
スニペットを実行している間、スクロールして結果を確認してください。
$(document).ready(function(){
var i=1;
$('#add').click(function(){
i++;
$('#dynamic_field').append('<tr><td><input type="text" name="name[]" placeholder="Category" class="form-control name_list" /></td><td><input type="radio" name="inlineRadioOptions []" value="Yes  "> Yes   <label class="radio-inline"><input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="No"> No</label></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row'+button_id+'').remove();
});
$('#submit').click(function(){
$.ajax({//here you can send date to DB
url:"name.php",
method:"POST",
data:$('#add_name').serialize(),
success:function(data)
{
alert(data);
$('#add_name')[0].reset();
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<div class="card-body">
\t \t \t \t <h5 class="card-text"><div style="text-align: left">Deliverables</div></h5>
<h6 class="card-subtitle mb-2 text-muted"><div style="text-align: left">Press + to add minors</div></h6>
<button id="add" class="btn add-more"type="button">+</button>
</div>
<div class="container">
<div class="row">
<input type="hidden" name="count" value="1" />
<div class="control-group" id="fields">
<div class="controls" id="profs">
<form id="main_delivery" class="input-append">
<div id="field">
<table class="table table-bordered" id="dynamic_field">
<tr>
<td><input type="text" name="name[]" placeholder="Category" class="form-control name_list" /></td>
<td><input type="radio" name="inlineRadioOptions []" value="Yes  "> Yes   <label class="radio-inline"><input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="No"> No</label></td>
</tr></table>
</div>
</form></div>
</div>
</div>
</div>
事務局担当:スクロールバーの結果を参照してください+]ボタンを複数回押します。 –
その行にはIDがありません。なぜ1.4.1を使用していますか?そのjQueryバージョンは7.5歳以上です – epascarello
行のIDは必ずしも必要ではありません。代わりに '$(this).closest( 'tr')。remove();'を使うことができます。 –