Ich möchte herausfinden, ob eine Eingabe eine Checkbox ist oder nicht, und die folgende nicht funktioniert:jQuery prüfen, ob eine Eingabe vom Typ Checkbox ist?
$("#myinput").attr('checked') === undefined
Sie noch einmal Dank!
Ich möchte herausfinden, ob eine Eingabe eine Checkbox ist oder nicht, und die folgende nicht funktioniert:jQuery prüfen, ob eine Eingabe vom Typ Checkbox ist?
$("#myinput").attr('checked') === undefined
Sie noch einmal Dank!
Sie den Pseudo-Selektor :checkbox
mit einem Aufruf von jQuery is
Funktion verwenden können:
$('#myinput').is(':checkbox')
$("#myinput").attr('type') == 'checkbox'
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"
Oder mehr des Stils von jQuery:
$("#myinput").attr('type') == 'checkbox'
Perfekt gültig. Nicht die einfachste. – KyleFarris
Es spart mit jQuery Selektor-Engine, deren Verwendung hier völlig unangemessen ist. Die erste Variante ist um so besser, da jede Möglichkeit von jQuerys verwirrter 'attr()' -Funktion vermieden wird. –
@Tim Down ist richtig - Sie sollten 'attr()' in 'prop()' ändern, afaik. 'attr()' erhält nicht immer den "echten" Attributwert vom Browser (d. h. geprüft oder nicht). Ehrlich gesagt bin ich mir nicht sicher, warum das so ist, aber ich habe das vor einiger Zeit gelernt. – thekingoftruth
Verwenden diese Funktion:
function is_checkbox(selector) {
var $result = $(selector);
return $result[0] && $result[0].type === 'checkbox';
};
Oder die jQuery-Plugin:
$.fn.is_checkbox = function() { return this.is(':checkbox'); };
Eine nicht-jQuery-Lösung wie eine jQuery-Lösung ist:
document.querySelector('#myinput').getAttribute('type') === 'checkbox'
Dies ist die Methode, die ich immer verwende. –
Sie können wirklich nicht einfacher als das bekommen. – KyleFarris
Warum den Selector-Motor dafür verwenden? Es ist völlig unnötig. –