2010-08-18 10 views
36

Mi piacerebbe essere in grado di trovare il tipo di qualcosa sulla pagina utilizzando javascript. Il problema è il seguente: Devo verificare se un'area specifica è una casella di controllo/un pulsante di opzione/o un campo di testo.Trovare il 'tipo' di un elemento di input

Se è una casella di controllo o un pulsante di opzione, non ha una lunghezza (senza stringhe), altrimenti se è un campo di testo, devo verificare se contiene o meno caratteri. La pagina viene creata dinamicamente, quindi a volte una casella di controllo può essere visualizzata altre volte in un campo di testo.

Quindi il mio pensiero è trovare il tipo di input, quindi determinare cosa fare.

Qualsiasi suggerimento sarebbe apprezzato.

Grazie in anticipo.

+1

Non un grosso problema, ma una distinzione più attenta sarebbe stata necessaria in questo caso: "Il tipo di un elemento di input" differisce in modo massiccio da "Tipo di una variabile" o "tipo di qualche altro elemento nella pagina". –

risposta

52

Verificare la proprietà type. Sarebbe sufficiente?

+5

usalo come element.type, restituirà textarea l'elemento è una textarea e così via. –

19

Se si desidera controllare il tipo di ingresso nel modulo, utilizzare il seguente codice:

<script> 
    function getFind(obj) { 
    for (i = 0; i < obj.childNodes.length; i++) { 
     if (obj.childNodes[i].tagName == "INPUT") { 
      if (obj.childNodes[i].type == "text") { 
       alert("this is Text Box.") 
      } 
      if (obj.childNodes[i].type == "checkbox") { 
       alert("this is CheckBox.") 
      } 
      if (obj.childNodes[i].type == "radio") { 
       alert("this is Radio.") 
      } 
     } 
     if (obj.childNodes[i].tagName == "SELECT") { 
      alert("this is Select") 
     } 
    } 
} 
</script>  

<script>  
    getFind(document.myform); 
</script> 
+1

Non è più necessario utilizzare questi commenti: http://dorward.me.uk/www/comments-cdata/ –

3

Se si utilizza jQuery è possibile controllare facilmente il tipo di qualsiasi elemento.

function(elementID){  
    var type = $(elementId).attr('type'); 
    if(type == "text") //inputBox 
    console.log("input text" + $(elementId).val().size()); 
    } 

Allo stesso modo è possibile controllare gli altri tipi e prendere i provvedimenti opportuni.

+9

Oppure, se si utilizza Javascript, è possibile scrivere 'document.getElementById (elementId) .type'. Non riesco a vedere il vantaggio che jQuery offre in questo caso. – troelskn

+0

Questa è una funzione (significa overhead), in uno stile non jQuery (ad esempio non '.getType()', non ha un functionname e non fa nient'altro che '$ (element) [0] .type' (assumendo hai già avuto l'oggetto jQuery) – Martijn

Problemi correlati