2011-11-30 9 views

Odpowiedz

50

AKTUALIZACJA: Za pomocą podpory zamiast ATTR

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

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

nieaktualne:

Oto 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

Stary post, ale powinieneś teraz użyć '.prop (" checked ")' zamiast 'attr()'. Dodatkowo łatwiej jest wymusić go w jednej linii 'var $ cb = $ (this); $ cb.val ($ cb.prop ("sprawdzone")); 'lub jeśli sprawa jest ważna' var $ cb = $ (this); $ cb.val (($ cb.prop ("sprawdzone") + "). toUpperCase());' – vol7ron

14

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

W przypadku korzystania starożytną wersję jQuery, trzeba użyć .attr('checked', 'checked') sprawdzić i .removeAttr('checked') odznaczyć.

52

Można to zrobić (jQuery 1,6 roku):

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

usunąć można również użyć:

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

z jQuery < 1.6 trzeba zrobić

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

Ale wartość pola wyboru false nie zostanie przesłana przy użyciu formularza, prawda? Czy istnieje sposób, aby to się stało – IcedDante

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

Spowoduje to ustawienie value pola wyboru na "true" lub "false" (value property jest string), w zależności od tego, czy jest to unchecked czy checked.

roboty jQuery> = 1,0

6

Spróbuj tego:

HTML:

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

JQ:

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

jsfiddle

Należy pamiętać, że zaznaczone pole wyboru nie zostanie przedłożony w zwykłej formie i należy użyć ukryte, aby to zrobić.

+0

Twój fragment fiddle'a przekreśla inną wartość span. Nie zmienia wartości pola wyboru. Proszę zsynchronizować swoje odpowiedzi. –

+1

Cóż, fragment kodu 'span' służy wyłącznie do celów demonstracyjnych i jeśli spojrzysz na kod, zostanie on ustawiony na wartość pola wyboru. Jeśli jednak potrzebujesz lepszego (nieco szybszego) rozwiązania, może to pomóc: http://jsfiddle.net/SfEGn/130/ – Krule

+0

To jest kod, który można dosłownie skopiować i wkleić, a to zadziała.Dziękujemy za dalsze wyjaśnienia. –

Powiązane problemy