Bootstraps ICheck-Helper no se activa en un evento modificado

2 minutos de lectura

avatar de usuario de johnny 5
johnny 5

Tengo este código Jquery para actualizar las casillas de verificación en función de si se ha marcado una casilla de verificación. Sin embargo, esto no se dispara.

Código

$('body').on('change', '.territory', function () {
    var PK = $(this).find('input:checkbox:first').val();
    var PKStr=".parent" + PK;
    console.log('change!');
});

$('body').on('change', '.iCheck-helper', function () {
    //var PK = $(this).find('input:checkbox:first').val();
    //var PKStr=".parent" + PK;
    console.log('change!');
});

<div class="row">
  <div class="col-md-12 col-lg-12">
    <label class="control-label">
      Selected Territories
    </label>
  </div>

  @for (int c = 0; c < 2; ++c)
  {
     int Count = 0; 
     <div class="col-md-6 col-lg-6">
     @foreach (var ter in Infobase.MMS.Models.ComboBoxValues.GetTerritoryRights(0))
     {
        if (Count % 2 == c)
        {
          <label>
            <input type="checkbox" class="territory" value="@ter.Key">
                                                        &nbsp;@ter.Value

          </label>
        }
        Count++;
      }
   </div>
  }    
</div>

Intenté vincular la función de clic y la función de cambio en iCheckbox-Helper, así como directamente a las casillas de verificación. Sin embargo, ninguno parece funcionar. Todo funciona bien cuando no agrego el script Icheck.js.

¿Alguien sabe cómo conectarse a un evento modificado desde la clase Bootstrap Icheckhelper?

  • De acuerdo a este problema para iCheck, este era un problema conocido. Aunque afirma que esto se resolvió con una actualización más reciente, todavía tengo el problema. (Me encontré con su pregunta mientras buscaba una solución). Si todavía está buscando una solución, tal vez pruebe algunos de los fragmentos en los comentarios sobre el problema.

    – Julia Ebert

    5 sep 2014 a las 19:02

Use ifChanged o ifChecked mencionado en el documentación

$('input').on('ifChecked', function(event){
  alert(event.type + ' callback');
});

Acabo de agregar esto globalmente y me funciona.

$(".i-checks input").on('ifChanged', function (e) {
    $(this).trigger("change", e);
});

Avatar de usuario de Bharat Kumar
Bharat Kumar

Agregue los eventos jQuery para activar el evento onClick

$('input[type="checkbox"], input[type="radio"]').on('ifChanged', function (e) {
     $(this).trigger("onclick", e);
});

Avatar de usuario de Sanjeewa Amaraweera
Sanjeewa Amaraweera

Esto funcionó para mí.

$(document).on("ifChecked", "input", function () {alert("Changed");})

¿Ha sido útil esta solución?