2017-02-04 3 views
0

У меня следующая ситуация:

Там есть таблица с записями и набор кнопок (добавление, изменение, удаление и т. д.) У меня есть флажок в начале каждой записи (для множественного выбора -> удалить).

Я хочу, чтобы каждая запись также выбиралась, когда пользователь нажимает на строка таблицы (необязательно в флажке внутри строки). Я сделал это с помощью jQuery.

Проблема состоит в том, что кнопка DELETE должна быть активной (просто чтобы изменить свою прозрачность на этом раннем этапе) только при выборе 1 или более записей.

Все работает нормально, когда я нажимаю на флажки, но функция не принимает во внимание флажки, если они проверяются из-за щелчка в другом месте на tr.

////TABLE CHECKBOX - check-on-tr-click//// 
$('table.main-t').delegate('tr', 'click', function(event) 
{ 
     var check = $(this).children().find('input[data-type="sel"]'); 
     if ($(check).is(':checked')) 
     { 
      $(check).prop('checked', false); 

     } 
     else 
     { 
      $(check).prop('checked', true); 
     } 
}); 

////BUTTONS - make them active after record selection//// 
$('input[data-type="sel"]').change(function() 
{ 
    if($(this).is(':checked')) 
    { 
     $('[data-type="btn-t"]').removeClass('transparent'); 
    } 
    else 
    { 
     if ($('input[data-type="sel"]:checked').length === 0) 
     { 
      $('[data-type="btn-t"]').addClass('transparent');   
     } 
    } 
}); 

Как я уже говорил, вторая функция отлично работает, но только если я установите флажок, нажав на него, а не с помощью первой функции.

Пожалуйста, помогите мне разобраться, Спасибо!

+0

, что если пользователь нажимает на кнопку в строке? – charlietfl

ответ

0

Это не будет вызывать изменения, если не добавить .trigger('change'), так что теперь она будет выглядеть следующим образом $(check).prop('checked', false).trigger('change');

+0

или '$ (check) .prop ('checked', false) .change()' также сделает это. Также следует проверить цель или также отменить щелчок на флажке – charlietfl

+0

Большое спасибо! –

+0

Без проблем, рад, что это помогло –