2009-09-28 21 views

Respuesta

276

Puede utilizar la pseudo-selector de :checkbox con una llamada a la función de jQuery is:

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

Este es el método que siempre uso. –

+0

Realmente no puedes ser más simple que eso. – KyleFarris

+8

¿Por qué usar el motor selector para esto? Es completamente innecesario. –

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

O, más del estilo de jQuery:

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

perfectamente válido. No es el más simple. – KyleFarris

+6

Se ahorra usando el motor selector de jQuery, cuyo uso aquí es completamente inapropiado. La primera variante es mucho mejor, ya que evita cualquier posibilidad de confundir la función 'attr()' de jQuery estropeando todo. –

+3

@Tim Down es correcto - debe cambiar 'attr()' a 'prop()', afaik. 'attr()' no siempre obtiene el valor de atributo "real" (es decir, marcado o no) del navegador. Sinceramente, no estoy seguro de por qué este es el caso, pero aprendí esto hace un tiempo. – thekingoftruth

2

Uso esta función:

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

O este plugin de jQuery:

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

una solución no jQuery es muy similar a una solución de jQuery:

document.querySelector('#myinput').getAttribute('type') === 'checkbox' 
Cuestiones relacionadas