У меня проблема с математическим кодированием.Ниже приведена упрощенная версия моего настоящего сценария.Номер заказа генерируется сверху на основе текущей даты и первого заказа дня, добавляемого как «.1».Внизу находится сворачиваемая кнопка, которая содержит идентификатор образца, который должен быть порядковым номером.1 с добавлением «. #» Для каждого образца.Таким образом, образец 5 будет ordernumber.1.5.
Проблема в том, что при удалении семпла нажатием на кнопку «Удалить семпл» рядом с семплом не происходит переупорядочение номеров семплов.Таким образом, образцы 1,2,3,4,5 и удаление 3 будут тогда 1,2,4,5.Мне нужно, чтобы они были 1,2,3,4, а затем то же самое с номерами заказа: ordernumber.1.5 должен стать ordernumber.1.4.Я думаю, что какой-то цикл for должен быть добавлен в код кнопки удаления, чтобы учесть следующие кнопки.
$(document).ready(function() {
var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear() - 2000;
var date = year +
(month < 10 ? '0' : '') + month +
(day < 10 ? '0' : '') + day;
var order = 1
var output = date + "." + order;
$("#ordernumber").text(output);
});
$(document).ready(function() {
$("#addsmplbtn").click(function() {
var element = $(".samplesinfo.hidden").clone(true);
element.removeClass('hidden').insertAfter(".samplesinfo:last");
$(".panel").slideUp();
var n = $(".samplesinfo").length - 1;
element.find('.samplebtn').text('Sample ' + n);
$("#nsamples").text(n);
var ordernumber = $("#ordernumber").text();
var output = (ordernumber + "." + n);
$("#sampleid").text(output);
});
$(".delbtn").click(function() {
$(this).closest(".samplesinfo").remove();
var n = $(".samplesinfo").length - 1;
$("#nsamples").text(n);
});
$(".samplebtn").click(function() {
$(this).next(".panel").slideToggle();
});
$("#showsamples").click(function() {
$(".panel").slideDown();
});
$("#hidesamples").click(function() {
$(".panel").slideUp();
});
$("#alldelbtn").click(function() {
$(".samplesinfo").remove();
});
$("#addsmplbtn").trigger('click');
});
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<style>
.hidden {
display: none;
}
</style>
<body>
<div class="main_body">
<div class="maincolumn">
<div id="Add New Order" class="tabcontent">
<div class="column">
<div class="container">
<div class="subcontainer">
<p><b>Order Number:</b></p>
<span id="ordernumber" class="fixedsampinfo"></span>
<br>
<p><b>Number of Samples:</b></p>
<span id="nsamples" class="fixedsampinfo"></span>
<br>
</div>
</div>
</div>
<div class="mySidenav" id="mySidenav">
<button id="addsmplbtn">Add Additional Sample</button>
<br>
<br>
<br>
<button id="showsamples">Show All Sample Information</button>
<br>
<br>
<br>
<button id="hidesamples">Hide All Sample Information</button>
<br>
<br>
<br>
<button id="alldelbtn" class="alldelbtn">Delete All Samples</button>
</div>
<div id="samplesinfo" class="samplesinfo hidden">
<button class="delbtn" style="width:50%;float:right;">Delete Sample</button>
<button id="samplebtn" class="samplebtn" style="width:50%;">Sample</button>
<div class="panel">
<div class="container">
<div id="usrInput" class="subcontainer">
<p style="float:left;margin: 5px;"><b>Sample ID:</b></p>
<span id="sampleid" class="fixedsampinfo"></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Еще две проблемы, которые я не могу решить, заключается в том, что при нажатии кнопки «удалить все образцы» он также удаляет скрытые »шаблон ", таким образом, новый образец не может быть добавлен.Наконец, порядковые номера добавляются только ко второму добавленному образцу с неправильным идентификатором, поэтому первый образец пуст, а второй - ordernumber.1.1 и должен быть ordernumber.1.2.
Любая помощь будет оценена, эти проблемысводят меня с ума!