J'ai une table contenant N nombre de tr> td, j'ai des cases à cocher ayant class = "hrchy-dt-checkboxes", donc chaque fois que je clique sur ce TD, la case doit être cochée.

Voici mon exemple de HTML

<tr style="height:20.1pt;"><input disabled="disabled" value="" class="dt-checkboxes" id="row_2" type="checkbox"> 
  <td class="td_0_3">1<input disabled="disabled" value="" class="hrchy-dt-checkboxes" id="td_2" type="checkbox"></td>
  <td class="td_0_1">A-1) Efectivo y otros activos líquidos equivalentes</td>
  <td class="td_0_1">18063955860.200008</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td> 
 </tr>
 <tr style="height:20.1pt;"><input disabled="disabled" value="" class="dt-checkboxes" id="row_1" type="checkbox"> 
  <td class="td_0_3">&nbsp;<input disabled="disabled" value="" class="hrchy-dt-checkboxes" id="td_1" type="checkbox"></td>
  <td class="td_0_1">ACTIVO: Total del Sector</td>
  <td class="td_0_1">Importe</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td> 
 </tr>

MISE À JOUR:

if(checkboxClass.indexOf('hrchy-dt-checkboxes')!=-1){
    $('.hrchy-dt-checkboxes:checked').each(function(i){
        var idAttr=$(this).attr('id');
        var selectedTDVal=$(this).parent().text();
        var indexVal=idAttr.substring(idAttr.indexOf('_'),idAttr.length);
        indexVal=indexVal.replace('_','');
        var hrchyIndexId=parseInt(indexVal);
        selectedVal[i]=selectedTDVal;
        hrchyMap[hrchyIndexId]=selectedTDVal;
    });
    selectedVal=[];
}

À partir du code ci-dessus, chaque fois qu'une case est cochée, la valeur sera transférée au backend. Besoin d'améliorations sur ce code.

Merci

3
eThan_hunT 14 août 2017 à 08:56

2 réponses

J'espère que c'est ce que tu veux

$('td').click(function (event) {
if (!$(event.target).is('input')) {
   $('input:checkbox', this).prop('checked', function (i, value) {
    return !value;
   });
}

});

1
Dmytro Lishtvan 14 août 2017 à 06:15

Vous pouvez utiliser le code ci-dessous pour cocher la case. Cependant, je ne sais pas si vous devez décocher la case également pour ne pas l'ajouter. Faites-moi savoir si vous en avez besoin.

// Code goes here
$( document ).ready(function() {

$('.hrchy-dt-checkboxes').parent().parent().click(function(){
  var elem = this;
  var chk = $(this).find('.hrchy-dt-checkboxes')[0];
  $(chk).prop('checked','checked');
})  
});

Voici le plunker pour le même

Mettre à jour :

Voici le code mis à jour pour basculer la sélection:

$( document ).ready(function() {

$('.hrchy-dt-checkboxes').parent().parent().click(function(){
  var elem = this;
  var chk = $(this).find('.hrchy-dt-checkboxes')[0];
  var isChecked = $(chk).prop('checked');
    $(chk).prop('checked',!isChecked);  

})  
});
2
Manprit Singh Sahota 17 août 2017 à 06:24