我使用模态对主题进行编辑。在以下情况下:反复按下模式开关启用按钮并不做任何更改就将其关闭,对多个项目进行重复操作-这导致以下事实:更改而不是我添加更改的一个项目,而是将更改保存到数据库中。标记的。 我认为可以通过以某种方式清除href中的data-id内存来打开模式来解决此问题
<a href="" data-toggle="modal" data-target="#editSubject" data-id="{{$subject->id}}"
data-name="{{$subject->name}}" data-ects="{{$subject->ects}}"
data-exam="{{$subject->exam}}"
class="btn btn-light btn-sm edit-subject">
<i class="far fa-edit fa-lg"></i>
</a>
var editSubject = () =>
{
$('body').on('click', '.edit-subject', function(){
let el = this;
let id = $(this).data('id');
$("#nameEdit").attr("value", $(this).data('name'));
$("#ectsEdit").attr("value", $(this).data('ects'));
$("#examEdit").attr("value", $(this).data('exam'));
$('#submitEditSubject').click(function(event){
let name = $('#nameEdit').val();
let ects = parseInt($('#ectsEdit').val());
let exam = $('#examEdit').val();
let postData = {
"name": name,
"ects": ects,
"exam": exam,
"_token": $('#token').val()
};
$.ajax({
type: "PATCH",
url: `/subjects/${id}/update`,
data: postData,
success: function(data)
{
closeModal();
$('#validation-info').hide();
$(el).closest('tr').remove();
appendToTable(data);
$('#success-info').show();
$('#info').html(data.success);
}
});
});
});
}