2011-10-04 13 views
5

mam zmianę statusu checkbox w ten sposób: $(this).attr("checked", 'checked');jQuery otrzymania statusu checkbox

Po tym chcę otrzymać status pole wyboru, ale mam to:

$(this).attr('checked'): "checked" 
$(this).is(':checked'): false 

Jak to może być?

P.S. Może nie zmieniam poprawnie statusu checkbox poprzez jQuery?

Odpowiedz

13

Właściwym sposobem jest $(this).prop('checked'), aby zwrócić właściwość boolean zamiast atrybutu (który jest ciągiem znaków).

Korzystanie .prop() można również ustawić sprawdzany stan: $(this).prop('checked', true_or_false);

Jak widać na http://jsfiddle.net/ThiefMaster/QR2fL/, .attr('checked') zwraca początkową wartość atrybutu - nie zmieniło się, kiedy zaznaczenie/odznaczenie pola wyboru.

4

Nie należy zaznaczyć pole wyboru takiego:

$(this).attr("checked", 'checked'); 

ale tak

$(this).prop("checked", true); 

Aby sprawdzić, czy jest zaznaczone pole wyboru można użyć:

$(this).prop('checked'); 

lub

$(this).is(':checked'); 

które zwrócą wartość boolowską