2011-11-30 15 views

risposta

50

AGGIORNAMENTO: Usando prop anziché attr

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

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

DA DATA:

Ecco l'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

Vecchio post, ma ora dovresti usare '.prop ('checked')' invece di 'attr()'. Inoltre è più semplice forzarlo in una riga 'var $ cb = $ (this); $ cb.val ($ cb.prop ('checked')); 'o se case è importante' var $ cb = $ (this); $ cb.val (($ cb.prop ('checked') + ''). toUpperCase()); ' – vol7ron

14

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

Nel caso in cui si utilizza una antica versione jQuery, è necessario utilizzare .attr('checked', 'checked') per controllare e .removeAttr('checked') di deselezionare.

52

Si può fare (jQuery 1.6 in poi):

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

da rimuovere è anche possibile utilizzare:

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

con jQuery < 1.6 si deve fare

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

Ma il valore della casella di controllo di falso non verrà inviato con un modulo di invio, giusto? C'è un modo per farlo accadere. – IcedDante

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

Imposta lo value della casella di controllo su "true" o "false" (value property è un string), a seconda che si tratti di unchecked o checked.

Lavori in jQuery> = 1,0

6

Prova questo:

HTML:

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

JQ:

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

jsfiddle

prega di tenere presente che la casella deselezionata non sarà presentata in forma regolare, e si dovrebbe utilizzare nascosto archiviato per farlo.

+0

Il frammento di violino sta modificando qualche altro valore di span. Non sta cambiando il valore della casella di controllo. Si prega di sincronizzare le vostre risposte –

+1

Bene, 'span' in snippet è solo a scopo dimostrativo e se date un'occhiata al codice, sarà impostato per essere uguale al valore della casella di controllo. Tuttavia, se hai bisogno di una soluzione migliore (più veloce), questo potrebbe aiutare: http://jsfiddle.net/SfEGn/130/ – Krule

+0

Questo è un codice che puoi letteralmente copiare e incollare e funzionerà.Grazie per ulteriori chiarimenti –

Problemi correlati