2009-09-28 14 views

risposta

276

È possibile utilizzare la pseudo-selettore :checkbox con una chiamata alla funzione di jQuery is:

$('#myinput').is(':checkbox') 
+1

Questo è il metodo che uso sempre. –

+0

Non puoi davvero diventare più semplice di così. – KyleFarris

+8

Perché usare il motore di selezione per questo? È completamente inutile. –

8
$("#myinput").attr('type') == 'checkbox' 
22
>>> a=$("#communitymode")[0] 
<input id="communitymode" type="checkbox" name="communitymode"> 
>>> a.type 
"checkbox" 

O, più dello stile di jQuery:

$("#myinput").attr('type') == 'checkbox' 
+0

perfettamente valida. Non il più semplice – KyleFarris

+6

Si salva usando il motore di selezione di jQuery, il cui uso qui è del tutto inappropriato. La prima variante è molto meglio, poiché evita qualsiasi possibilità di confusione della funzione 'attr()' di jQuery. –

+3

@Tim Down ha ragione - dovresti cambiare 'attr()' in 'prop()', afaik. 'attr()' non ottiene sempre il valore dell'attributo "reale" (cioè controllato o meno) dal browser. Onestamente non sono sicuro del perché questo è il caso, ma ho imparato questo tempo fa. – thekingoftruth

2

Usa questa funzione:

function is_checkbox(selector) { 
    var $result = $(selector); 
    return $result[0] && $result[0].type === 'checkbox'; 
}; 

O questo plugin jQuery:

$.fn.is_checkbox = function() { return this.is(':checkbox'); }; 
6

una soluzione non-jQuery è molto simile a una soluzione di jQuery:

document.querySelector('#myinput').getAttribute('type') === 'checkbox' 
Problemi correlati