Fix: сохранение даты и табличной части заказа (корректный префикс formset items-N)

Made-with: Cursor
This commit is contained in:
2026-02-26 13:17:09 +00:00
parent a2577ed3eb
commit 319f38ea05
4 changed files with 24 additions and 12 deletions

View File

@@ -157,11 +157,11 @@
row.querySelectorAll('input, select').forEach(function(el) {
var n = el.getAttribute('name');
if (n && n.indexOf(prefix) === 0) {
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '\\d+'), prefix + i));
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '-\\d+'), prefix + '-' + i));
}
var id = el.getAttribute('id');
if (id) {
el.setAttribute('id', id.replace(new RegExp(prefix + '\\d+'), prefix + i));
el.setAttribute('id', id.replace(new RegExp(prefix + '-\\d+'), prefix + '-' + i));
}
});
});
@@ -188,8 +188,8 @@
clone.querySelectorAll('input, select').forEach(function(el) {
var name = el.getAttribute('name');
if (name && name.indexOf(prefix) === 0) {
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '-\\d+-'), prefix + '-' + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '-\\d+'), prefix + '-' + nextIndex));
}
if (el.name && el.name.indexOf('-DELETE') !== -1) {
el.checked = false;

View File

@@ -162,11 +162,11 @@
row.querySelectorAll('input, select').forEach(function(el) {
var n = el.getAttribute('name');
if (n && n.indexOf(prefix) === 0) {
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '\\d+'), prefix + i));
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '-\\d+'), prefix + '-' + i));
}
var id = el.getAttribute('id');
if (id) {
el.setAttribute('id', id.replace(new RegExp(prefix + '\\d+'), prefix + i));
el.setAttribute('id', id.replace(new RegExp(prefix + '-\\d+'), prefix + '-' + i));
}
});
});
@@ -193,8 +193,8 @@
clone.querySelectorAll('input, select').forEach(function(el) {
var name = el.getAttribute('name');
if (name && name.indexOf(prefix) === 0) {
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '-\\d+-'), prefix + '-' + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '-\\d+'), prefix + '-' + nextIndex));
}
if (el.name && el.name.indexOf('-id') !== -1) {
el.value = '';