Chciałbym się dowiedzieć, czy wejście to pole wyboru, czy nie, a następnego nie działa:jQuery sprawdź, czy wejście jest typu checkbox?
$("#myinput").attr('checked') === undefined
Jeszcze raz dziękuję!
Chciałbym się dowiedzieć, czy wejście to pole wyboru, czy nie, a następnego nie działa:jQuery sprawdź, czy wejście jest typu checkbox?
$("#myinput").attr('checked') === undefined
Jeszcze raz dziękuję!
można użyć pseudo-selektor :checkbox
z wezwaniem do is
funkcji jQuery:
$('#myinput').is(':checkbox')
$("#myinput").attr('type') == 'checkbox'
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"
Albo, bardziej w stylu jQuery:
$("#myinput").attr('type') == 'checkbox'
całkowicie poprawny. Nie najprostszy. – KyleFarris
Zapisuje przy użyciu silnika selektora jQuery, którego użycie jest tutaj całkowicie niewłaściwe. Pierwszy wariant jest tym lepszy, ponieważ unika jakiejkolwiek możliwości pomieszania funkcji 'attr()' przez jQuery'a. –
@ Tim Down ma rację - powinieneś zmienić 'attr()' na 'prop()', afaik. 'attr()' nie zawsze pobiera "prawdziwą" wartość atrybutu (tj. sprawdzoną lub nie) z przeglądarki. Szczerze mówiąc nie wiem, dlaczego tak się dzieje, ale nauczyłem się tego już jakiś czas temu. – thekingoftruth
użytku ta funkcja:
function is_checkbox(selector) {
var $result = $(selector);
return $result[0] && $result[0].type === 'checkbox';
};
Albo ten plugin jQuery:
$.fn.is_checkbox = function() { return this.is(':checkbox'); };
Rozwiązanie non-jQuery jest bardzo podobny do rozwiązania jQuery:
document.querySelector('#myinput').getAttribute('type') === 'checkbox'
Jest to metoda, z której zawsze korzystam. –
Naprawdę nie można uzyskać prostsze niż to. – KyleFarris
Po co używać tego silnika selektora? To zupełnie niepotrzebne. –