2011-11-30 23 views

Respuesta

50

ACTUALIZADA: Usando prop en lugar de attr

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE"/> 

$('#vehicleChkBox').change(function(){ 
    cb = $(this); 
    cb.val(cb.prop('checked')); 
}); 

OUT DE FECHA:

Aquí está el jsfiddle

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE" /> 

$('#vehicleChkBox').change(function(){ 
    if($(this).attr('checked')){ 
      $(this).val('TRUE'); 
    }else{ 
      $(this).val('FALSE'); 
    } 
}); 
+2

Publicación anterior, pero ahora debería usar '.prop ('checked')' en lugar de 'attr()'. Además, es más fácil forzarlo en una línea 'var $ cb = $ (this); $ cb.val ($ cb.prop ('checked')); 'o si el caso es importante' var $ cb = $ (this); $ cb.val (($ cb.prop ('checked') + ''). toUpperCase()); ' – vol7ron

14

Uso $('#id-of-the-checkbox').prop('checked', true_or_false);

Si estás usando una versión antigua de jQuery, que tendrá que utilizar para comprobar y .attr('checked', 'checked').removeAttr('checked') desmarcar.

52

Puede hacer (jQuery 1.6 en adelante):

$('#idCheckbox').prop('checked', true); 
$('#idCheckbox').prop('checked', false); 

para eliminar también se puede utilizar:

$('#idCheckbox').removeProp('checked'); 

con jQuery < 1.6 que debe hacer

$('#idCheckbox').attr('checked', true); 
$('#idCheckbox').removeAttr('checked'); 
+0

Pero el valor de la casilla de verificación de falso no se enviará con un formulario enviado, ¿verdad? ¿Hay alguna manera de que eso suceda – IcedDante

4
var checkbox = $("#checkbox"); 
checkbox.val(checkbox[0].checked ? "true" : "false"); 

Esto configurará el value de la casilla de verificación a "true" o "false" (value property es string), dependiendo de si es unchecked o checked.

Obras en jQuery> = 1,0

6

Prueba esto:

HTML:

<input type="checkbox" value="FALSE" /> 

jQ:

$("input[type='checkbox']").on('change', function(){ 
    $(this).val(this.checked ? "TRUE" : "FALSE"); 
}) 

jsfiddle

Por favor tener en cuenta que casilla sin marcar no se presentará en forma regular, y se debe utilizar oculto archivado para poder hacerlo.

+0

Su fragmento de violín está cambiando el valor de otro span. No está cambiando el valor de la casilla de verificación. Por favor, sincronice sus respuestas –

+1

Bueno, 'span' en fragmento es sólo para fines de demostración y si echa un vistazo al código, se establecerá que sea igual al valor de la casilla de verificación. Sin embargo, si necesita una solución mejor (un poco más rápida), esto podría ayudar: http://jsfiddle.net/SfEGn/130/ – Krule

+0

Este es un código que puede copiar y pegar literalmente y funcionará.Gracias por la explicación adicional –

Cuestiones relacionadas