Фэт Фэклер исчезает после сообщения об ошибке при нажатии кнопкиJavascript

Форум по Javascript
Ответить
Anonymous
 Фэт Фэклер исчезает после сообщения об ошибке при нажатии кнопки

Сообщение Anonymous »

Я сталкиваюсь с проблемой с функцией JavaScript, которая добавляет флажок «Выбрать все» на страницу. Флажок появляется правильно, когда страница загружается и работает, как и ожидалось. Однако, когда пользователь делает запрос, не следуя требуемым параметрам, в верхней части страницы отображается сообщение об ошибке, но флажок исчезает. Вот соответствующая часть сценария: < /p>
function addSelectAllCheckbox() {
// Function to create the "Select All" checkbox
function createSelectAllCheckbox() {
// First, check if there are any visible checkboxes to select
var visibleCheckboxes = document.querySelectorAll('[id$="repeater"] input[type="checkbox"].chkDoc:not([style*="display: none"])');
if (visibleCheckboxes.length === 0) {
return; // No visible checkboxes, so don't add the "Select All" checkbox
}

var containers = document.querySelectorAll('[id$="selectAllContainer"]');
if (containers.length > 0) {
var container = containers[0];

// Remove any existing "Select All" checkbox
var existingCheckbox = container.querySelector('#selectAllCheckbox');
if (existingCheckbox) {
existingCheckbox.remove();
}

// Create the "Select All" checkbox
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = 'selectAllCheckbox';
checkbox.title = 'Select all';

// Add click event to toggle all visible checkboxes
checkbox.addEventListener('click', function () {
var isChecked = this.checked;
var checkboxes = document.querySelectorAll('[id$="repeater"] input[type="checkbox"].chkDoc');
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes.offsetParent !== null) {
checkboxes.checked = isChecked;
}
}
});

// Append the checkbox to the container
container.appendChild(checkbox);

// Add change event to each checkbox to update the "Select All" state
var itemCheckboxes = document.querySelectorAll('[id$="repeater"] input[type="checkbox"].chkDoc');
for (var i = 0; i < itemCheckboxes.length; i++) {
itemCheckboxes.addEventListener('change', updateSelectAllState);
}

// Set initial state of the "Select All" checkbox
updateSelectAllState();
}
}

// Function to update the state of the "Select All" checkbox
function updateSelectAllState() {
var selectAll = document.getElementById('selectAllCheckbox');
if (selectAll) {
var checkboxes = document.querySelectorAll('[id$="repeater"] input[type="checkbox"].chkDoc');
var visibleCheckboxes = Array.prototype.filter.call(checkboxes, function (cb) {
return cb.offsetParent !== null;
});

var allChecked = visibleCheckboxes.length > 0 &&
visibleCheckboxes.every(function (cb) { return cb.checked; });

selectAll.checked = allChecked;
}
}

// Run when the DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', createSelectAllCheckbox);
} else {
createSelectAllCheckbox();
}
}

// Initialize
addSelectAllCheckbox();
< /code>
Как я могу убедиться, что флажок «Выбрать все» остается видимым после отображения сообщения об ошибке и перезагрузки страницы? Есть ли способ сохранить или воссоздать флажок после ошибки?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-button
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»