Как следует из названия, мне нужна помощь с моим джавазипт -данных. У меня есть некоторая существующая логика для обработки «ввода» нажатия, когда отмечается несколько строк. Когда я нажимаю Enter, я хочу эту логику: < /p>
Если все строки не выполнены: Проверьте все строки
, если все строки проверены: Снимите все строки
, если бы по крайней мере один ряд проверяется: проверьте все ряды < /p>
js не мой самый сильный, и я пробовал множество моделей A Поэтому, пожалуйста, отправьте мой звонок и помогите мне разрешить это. ///enter
if (charCode == 13) {
var inputTryOne = $(e.target).find("input[type='checkbox']");
var inputTryTwo = $(e.currentTarget).find("input[type='checkbox']");
var input = inputTryOne[0] ?? inputTryTwo[0];
if (input != undefined) {
input = $(input);
var td = input.closest("td");
td.closest("tr").toggleClass("selected");
input.prop("checked", !input.prop("checked"));
input.trigger("change");
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
this.commitEditedCells();
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
< /code>
Следующий код - это ответ от AI, который был закрыто на успех, но он не устанавливает правильное состояние строки, он проверяет /снимает флажок, но не запускает событие, поэтому строка «фактически выбирается» и включена в расчеты /получает зеленый цвет строки. < /p>
if (charCode == 13) {
var inputTryOne = $(e.target).find("input[type='checkbox']");
var inputTryTwo = $(e.currentTarget).find("input[type='checkbox']");
var input = inputTryOne[0] ?? inputTryTwo[0];
if (input != undefined) {
// We're dealing with checkboxes
// Check if we have multiple cells selected
if (this.parent.selectedCells && this.parent.selectedCells.length > 1) {
console.log("Multiple cells selected:", this.parent.selectedCells.length);
// Find all unique rows and their checkboxes
var rows = [];
var checkboxes = [];
var checkedCount = 0;
var totalCount = 0;
// Use a map to track unique rows by ID to ensure uniqueness
var processedRows = {};
// First gather info about all selected rows
for (var i = 0; i < this.parent.selectedCells.length; i++) {
var cell = this.parent.selectedCells;
var row = $(cell).closest('tr')[0];
if (row) {
// Use the row's DOM element as a unique identifier
var rowId = row.id || i; // Use index as fallback if no ID
if (!processedRows[rowId]) {
processedRows[rowId] = true;
// Find the checkbox directly from the row
var checkbox = $(row).find('input[type="checkbox"]')[0];
if (checkbox) {
rows.push(row);
checkboxes.push(checkbox);
totalCount++;
// Check its current state
if (checkbox.checked) {
checkedCount++;
}
}
}
}
}
console.log("Found rows:", rows.length, "Total checkboxes:", totalCount, "Checked:", checkedCount);
// Determine what action to take
var setToChecked;
if (checkedCount === totalCount && totalCount > 0) {
// If ALL are checked, uncheck all
console.log("All are checked, unchecking all");
setToChecked = false;
} else {
// If ANY are checked or NONE are checked, check all
console.log("Not all are checked, checking all");
setToChecked = true;
}
// Update all checkboxes in one go
for (var j = 0; j < rows.length; j++) {
// Get the checkbox directly to ensure we're working with the actual element
var checkbox = checkboxes[j];
var row = rows[j];
console.log("Setting checkbox for row", j, "to", setToChecked);
// Set the checked state
checkbox.checked = setToChecked;
// Update row class based on the new state
if (setToChecked) {
$(row).addClass("selected");
} else {
$(row).removeClass("selected");
}
}
return;
}
// Single row case - keep the original behavior
input = $(input);
var td = input.closest("td");
td.closest("tr").toggleClass("selected");
input.prop("checked", !input.prop("checked"));
input.trigger("change");
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
this.commitEditedCells();
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... e-of-check
DataTables javaScript: отметьте несколько строк и нажмите «Ввод» Flis Stode of Fackbox вместо проверки/рассеяния всех ⇐ Javascript
Форум по Javascript
1741965010
Anonymous
Как следует из названия, мне нужна помощь с моим джавазипт -данных. У меня есть некоторая существующая логика для обработки «ввода» нажатия, когда отмечается несколько строк. Когда я нажимаю Enter, я хочу эту логику: < /p>
Если все строки не выполнены: Проверьте все строки
, если все строки проверены: Снимите все строки
, если бы по крайней мере один ряд проверяется: проверьте все ряды < /p>
js не мой самый сильный, и я пробовал множество моделей A Поэтому, пожалуйста, отправьте мой звонок и помогите мне разрешить это. ///enter
if (charCode == 13) {
var inputTryOne = $(e.target).find("input[type='checkbox']");
var inputTryTwo = $(e.currentTarget).find("input[type='checkbox']");
var input = inputTryOne[0] ?? inputTryTwo[0];
if (input != undefined) {
input = $(input);
var td = input.closest("td");
td.closest("tr").toggleClass("selected");
input.prop("checked", !input.prop("checked"));
input.trigger("change");
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
this.commitEditedCells();
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
< /code>
Следующий код - это ответ от AI, который был закрыто на успех, но он не устанавливает правильное состояние строки, он проверяет /снимает флажок, но не запускает событие, поэтому строка «фактически выбирается» и включена в расчеты /получает зеленый цвет строки. < /p>
if (charCode == 13) {
var inputTryOne = $(e.target).find("input[type='checkbox']");
var inputTryTwo = $(e.currentTarget).find("input[type='checkbox']");
var input = inputTryOne[0] ?? inputTryTwo[0];
if (input != undefined) {
// We're dealing with checkboxes
// Check if we have multiple cells selected
if (this.parent.selectedCells && this.parent.selectedCells.length > 1) {
console.log("Multiple cells selected:", this.parent.selectedCells.length);
// Find all unique rows and their checkboxes
var rows = [];
var checkboxes = [];
var checkedCount = 0;
var totalCount = 0;
// Use a map to track unique rows by ID to ensure uniqueness
var processedRows = {};
// First gather info about all selected rows
for (var i = 0; i < this.parent.selectedCells.length; i++) {
var cell = this.parent.selectedCells[i];
var row = $(cell).closest('tr')[0];
if (row) {
// Use the row's DOM element as a unique identifier
var rowId = row.id || i; // Use index as fallback if no ID
if (!processedRows[rowId]) {
processedRows[rowId] = true;
// Find the checkbox directly from the row
var checkbox = $(row).find('input[type="checkbox"]')[0];
if (checkbox) {
rows.push(row);
checkboxes.push(checkbox);
totalCount++;
// Check its current state
if (checkbox.checked) {
checkedCount++;
}
}
}
}
}
console.log("Found rows:", rows.length, "Total checkboxes:", totalCount, "Checked:", checkedCount);
// Determine what action to take
var setToChecked;
if (checkedCount === totalCount && totalCount > 0) {
// If ALL are checked, uncheck all
console.log("All are checked, unchecking all");
setToChecked = false;
} else {
// If ANY are checked or NONE are checked, check all
console.log("Not all are checked, checking all");
setToChecked = true;
}
// Update all checkboxes in one go
for (var j = 0; j < rows.length; j++) {
// Get the checkbox directly to ensure we're working with the actual element
var checkbox = checkboxes[j];
var row = rows[j];
console.log("Setting checkbox for row", j, "to", setToChecked);
// Set the checked state
checkbox.checked = setToChecked;
// Update row class based on the new state
if (setToChecked) {
$(row).addClass("selected");
} else {
$(row).removeClass("selected");
}
}
return;
}
// Single row case - keep the original behavior
input = $(input);
var td = input.closest("td");
td.closest("tr").toggleClass("selected");
input.prop("checked", !input.prop("checked"));
input.trigger("change");
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
this.commitEditedCells();
this.parent.lykoGridKeyboardNavigation.moveDown(false, false);
return;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79509440/javascript-datatables-mark-multiple-rows-and-press-enter-flips-state-of-check[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия