2012-11-21 9 views
5

Sto provando ad usare JQuery per ottenere il tipo di controllo e seguendo è il codice che sto usando.Ottenere il tipo di controllo usando Javascript e JQuery

$('#selCity').attr('type') 

dove selCity è di tipo select. Quando provo il codice di cui sopra, ritorna come non definito, ma quando uso il codice alternativo con Javascript, restituisce il tipo corretto.

Si prega di guardare in questo violino di capire chiaramente: http://jsfiddle.net/Ye8e9/

Could consiglio qualcuno su come posso raggiungere questo obiettivo in modo corretto utilizzando jQuery? È un problema con JQuery o sto facendo un errore?

risposta

8

Usa

$('#selCity').prop('type') 

Come di jQuery 1.6, il .attr() restituisce non definito per gli attributi che non sono stati impostati. Inoltre, .attr() non deve essere utilizzato su oggetti semplici, array, la finestra o il documento . Per recuperare e modificare le proprietà DOM, utilizzare il metodo .prop().

Reference

DEMO

+0

Il comando "prop" funziona per tutti i tipi di controlli? –

+0

@AbishekRSrikaanth si – Sibu

+0

@AbishekRSrikaanth controlla il mio riferimento – Sibu

4

se si intende il tipo di tag, l'uso questo

$("#selCity").get(0).tagName 

See your demo here

+0

Rab Nawaz, Esiste un approccio generico che posso seguire per ottenere per tutti i controlli. Se provo il codice sopra per una casella di testo, ottengo il valore "INPUT" e con questo risultato non sono sicuro se il controllo è un campo nascosto o una casella di testo o un campo password. –

0

Usa nomeNodo per ottenere 'tipo di tag'. '.type' si riferisce all'attributo 'type' che select non ha.

document.getElementById('selCity').nodeName 
+0

Non sono sicuro o non capisco da cosa intendi per attributo 'tipo' non esiste per il controllo di selezione. Come vengono eseguiti i dati di output javascript quando viene eseguito il codice seguente document.getElementById ('selCity'). Tipo –

0

hai trovato indefinito perché non c'è tipo di attributo in select.

provare questo

$('#selCity')[0].tagName;