2012-06-20 17 views
10

Come posso controllare se un dato elemento DOM è una casella di controllo.Controlla se Elemento DOM è una casella di controllo

Scenario:

Ho una serie di caselle di testo e caselle di controllo in cui i valori sono assegnati in modo dinamico. Non ho un modo per identificare se l'elemento DOM è una casella di controllo o una casella di testo.

risposta

15

Se stai usando jQuery, è possibile utilizzare il selettore di :checkbox con is metodo:

if($("#that-particular-input").is(":checkbox")) { 
} 
1

Dai uno sguardo allo checkbox selector.

var checkboxes = $("form input:checkbox"); 

Si può dire che tipo di input è simile a questo:

if ($(".your-input").is(":text")) 
{ 
    // Textbox 
} 
else if ($(".your-input").is(":checkbox")) 
{ 
    // Checkbox 
} 
37

Utilizzando solo vaniglia javascript si potrebbe fare

if (el.type && el.type === 'checkbox') { 
    ... 
} 

o anche più breve

if ((el || {}).type === 'checkbox') { 
    ... 
} 
+2

Molti anni più tardi ... probabilmente vorrai "toLowerCase" quel tipo di valore, vero? – Nathan

+0

No, per favore converti in 'lowerCase' e ​​confronta quindi. –

+0

@ AndreasKöberle dovrebbe dipendere da come hai scritto l'attributo nel markup, giusto? – fcalderan

0

Try Questo;

$(element).is(':checkbox'); 

qui element è selettore fino element

if( $(element).is(':checkbox')) { 
    // do something 
} 
1
if (<DOMNode>.type === "checkbox") { 
    // ... 
} 
0

jQuery is():

if ($el.is(':checkbox')) { ... } 
0

È possibile utilizzare la pseudo-selettore: casella di controllo con una chiamata a jQuery di è la funzione:

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

3
if($(element)[0].type == "checkbox") { 

} 

O

if($(element).is(':checkbox')) { 

} 
8

Controlli nulla

function isCheckbox (element) { 
    return element instanceof HTMLInputElement 
     && element.getAttribute('type') == 'checkbox' 
} 
0

Dovresti avere una convenzione di denominazione decente che ti consenta di sapere se un elemento è una casella di controllo semplicemente vedendo il suo nome o id. ad es. "chkMyCheckbox"

Problemi correlati