Я сталкиваюсь с проблемой с функцией 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
Фэт Фэклер исчезает после сообщения об ошибке при нажатии кнопки ⇐ Javascript
Форум по Javascript
-
Anonymous
1755165546
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[i].offsetParent !== null) {
checkboxes[i].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[i].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>
Как я могу убедиться, что флажок «Выбрать все» остается видимым после отображения сообщения об ошибке и перезагрузки страницы? Есть ли способ сохранить или воссоздать флажок после ошибки?
Подробнее здесь: [url]https://stackoverflow.com/questions/79735235/checkbox-disappears-after-error-message-when-clicking-button[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия