Получить все проверенные элементы и значение в массив - PullRequest
1 голос
/ 07 февраля 2011

У меня есть пользовательский фиксированный элемент таблицы заголовков. В основном, как это работает, я настраиваю класс, который будет заполняться списком классов этого типа на основе данных, возвращаемых из базы данных. Я хочу иметь флажки для каждого возвращаемого элемента, который при выборе будет добавлен в массив. Когда пользователь выбирает «печать», у меня есть логика, которая будет печатать запись выбранного ряда. У меня также есть в заголовке вариант выбора всех для этого столбца. Вот быстрый пример:

|Name|ID|Product|Date|Select All 'checkbox'|
-----------------------------------------
|JonS|01|prodOne|Date|'checkbox'           |
|AmyA|02|prodTwo|Date|'checkbox'           |

Когда пользователь устанавливает флажок «Выбрать все», у меня появляется следующий javascript, который будет выбирать / отменять выбор каждого элемента флажка.

function showHideAll() {
    if (document.getElementByID('AllCheckBox').checked == 1){
        $('.RowCheckBoxClass').attr('checked',true);
    }
    else {
        $('.RowCheckBoxClass').attr('checked',false);
    }
}

Это все работает и все хорошо. Внизу есть кнопка «печать». В основном я запускаю это как очередь печати. Выберите нужные записи и нажмите «Печать», и он напечатает выбранные записи. Как я могу найти выбранные строки? Мне нужен идентификатор флажка проверенной строки. В моем классе, который будет списком данных, я могу добавить функцию onclick. Проблема в том, что я не хочу отправлять сообщения каждый раз, когда пользователь нажимает на флажок и должен сохранять строку запроса. Я просто хочу взять идентификатор строки флажка и добавить его в массив либо с помощью JavaScript, либо с помощью метода c #.

Я думаю о том, чтобы иметь метод jscript, который будет сканировать и видеть, какие флажки отмечены. Но у меня все еще есть проблемы с тем, как добавить их в очередь. Любая помощь или идеи?

Ответы [ 3 ]

1 голос
/ 07 февраля 2011

Похоже, вы уже используете jQuery:

  var checkedIdList = [];
  $('.RowCheckBoxClass').each(function(_, cb) {
    if (cb.checked) {
      checkedIdList.push($(cb).closest('tr').find('td')[1].text());
    }
  });

Если значения "id" являются числовыми, вы можете преобразовать текст в число:

      checkedIdList.push(parseInt($(cb).closest('tr').find('td')[1].text(), 10));
0 голосов
/ 07 февраля 2011

Чтобы отсканировать страницу и найти все отмеченные строки, вы можете сделать это (так как вы уже используете jQuery):

$(".RowCheckBoxClass:checked");
0 голосов
/ 07 февраля 2011

Лучшим способом было бы добавить класс для всех отмеченных элементов и флажок rel in для хранения идентификаторов.Теперь, когда вы попытаетесь взять все проверенные, вызовите все с проверенным классом и присоедините все идентификаторы.

  function showHideAll() {
        if (document.getElementByID('AllCheckBox').checked == 1){
            $('.RowCheckBoxClass').attr('checked',true);
        }
        else {
            $('.RowCheckBoxClass').attr('checked',false);
        }
    }

можно упростить до

function showHideAll() {
        $('.RowCheckBoxClass').attr('checked', $('#AllCheckBox').attr('checked'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...