Очень нужна помощь по этой части скрипта для управления django formset с помощью кнопки
Всем профи, мне очень нужна помощь. 2 дня назад мой код работал. Теперь он не работает. Проблема в этой строке '$('#id_form-TOTAL_FORMS').attr('value', (parseInt (totalForms))-1);'. 2 дня назад без этой строки все работало. Кнопка управления количеством форм и ее сохранение количества данных соответственно. Но теперь без этой же строки, он не может даже контролировать подсчет правильно. И что еще хуже, он удаляет последнюю строку данных, когда я сохраняю.
Вот что происходит в деталях: При загрузке страницы пользователь может клонировать до 3 дополнительных наборов форм для ввода данных. Итак, в исходном варианте. Всего имеется 4 строки. Если пользователь нажимает сохранить, все 4 строки сохраняются должным образом. Если пользователь не нажимает сохранить, а вместо этого нажимает кнопку '-' на одной из строк, чтобы удалить одну из строк. Станет 2 дополнительных набора форм и останется исходный. Итого 3 строки данных. Но если в это время пользователь нажимает сохранить, то он каким-то образом удаляет еще один дополнительный набор форм из-за строки $('#id_form-TOTAL_FORMS').attr('value', (parseInt (totalForms))-1);
Но сегодня утром, без использования этой строки все работает отлично
let maxrow = $('#id_form-MAX_NUM_FORMS').attr('value');
let totalForms = $('#id_form-TOTAL_FORMS').val();
// Show the total # of forms on run (default is 1)
console.log(totalForms);
$('#deleteConfirmation').modal('hide');
$('#addrow').click(function () {
let totalForms = $('#id_form-TOTAL_FORMS').val();
console.log(totalForms)
$('#empty-form #removerow').css('display','block');
let wholerowclone = $('#empty-form').clone();
$('#morerows').append(wholerowclone.html().replace(/__prefix__/g, totalForms));
$('#id_form-TOTAL_FORMS').attr('value', (parseInt (totalForms))+1);
if(totalForms==maxrow) {
$('#addrow').attr("disabled", true);
$('#addrow').attr("class","btn btn-rounded btn-danger");
$('#addrow i').attr("class","");
$('#addrow').html("Reached max limit");
}
})
$(document).on('click', '#removerow', function () {
let totalForms = $('#id_form-TOTAL_FORMS').val();
console.log(totalForms + " total forms");
let actualformcount = totalForms-2;
console.log(actualformcount + "actual form count");
console.log(maxrow + "max");
//$('#id_form-TOTAL_FORMS').attr('value', (parseInt (totalForms))-1);
$(this).closest('#morerows .row').remove();
if(actualformcount<maxrow){
$('#addrow').attr("disabled", false)
$('#addrow').attr("class","btn btn-outline-success btn-rounded")
$('#addrow i').attr("class","dripicons-plus")
$('#addrow').html("+")
}
});
HTML: