jQuery si la casilla de verificación está marcada

Resuelto Clinton Green asked hace 13 años • 11 respuestas

Tengo una función a continuación que quiero activar solo cuando trse marca una casilla de verificación en la misma.

$(".add_menu_item_table").live('click', function() {
  if ($('input.checkbox_check').attr(':checked')); {
    // I want this to trigger.
  }
});
<table id="table-data">
  <tbody>
    <tr>
      <td><input type="checkbox" class="checkbox_check"></td>
      <td><input type="button" class="add_menu_item_table" value="Add"></td>
    </tr>
    <tr>
      <td><input type="checkbox" class="checkbox_check"></td>
      <td><input type="button" class="add_menu_item_table" value="Add"></td>
    </tr> 
  </tbody>
</table>
Expandir fragmento

Clinton Green avatar Nov 01 '11 04:11 Clinton Green
Aceptado
if ($('input.checkbox_check').is(':checked')) {
SLaks avatar Oct 31 '2011 21:10 SLaks

para jQuery 1.6 o superior:

if ($('input.checkbox_check').prop('checked')) {
    //blah blah
}

la forma compatible con varios navegadores para determinar si una casilla de verificación está marcada es usar la propiedad https://api.jquery.com/prop/

Alex from Jitbit avatar Apr 21 '2014 08:04 Alex from Jitbit
  • Para verificar si está marcado

    $('#checkboxId').is(':checked')
    
  • Verificar

    $("#checkboxId").prop('checked', true)
    
  • Para desmarcar

    $("#checkboxId").prop('checked', false)
    
DA001 avatar Dec 20 '2016 20:12 DA001

Si ninguna de las soluciones anteriores funciona por algún motivo, como mi caso, intente esto:

  <script type="text/javascript">
    $(function()
    {
      $('[name="my_checkbox"]').change(function()
      {
        if ($(this).is(':checked')) {
           // Do something...
           alert('You can rock now...');
        };
      });
    });
  </script>
Waiyl Karim avatar Feb 26 '2017 18:02 Waiyl Karim

Ver la principal diferencia entre ATTR | APOYO | Esta abajo:

Fuente: http://api.jquery.com/attr/

$( "input" )
  .change(function() {
    var $input = $( this );
    $( "p" ).html( ".attr( 'checked' ): <b>" + $input.attr( "checked" ) + "</b><br>" +
      ".prop( 'checked' ): <b>" + $input.prop( "checked" ) + "</b><br>" +
      ".is( ':checked' ): <b>" + $input.is( ":checked" ) + "</b>" );
  })
  .change();
p {
    margin: 20px 0 0;
  }
  b {
    color: blue;
  }
<meta charset="utf-8">
  <title>attr demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<input id="check1" type="checkbox" checked="checked">
<label for="check1">Check me</label>
<p></p>
 

 
</body>
</html>
Expandir fragmento

Guihgo avatar Dec 24 '2016 01:12 Guihgo