2010-08-18 14 views
36

Ich möchte in der Lage sein, den Typ von etwas auf der Seite mit Javascript zu finden. Das Problem ist wie folgt: Ich muss überprüfen, ob ein bestimmter Bereich ein Kontrollkästchen/Optionsfeld/oder Textfeld ist.Den 'Typ' eines Eingabeelements finden

Wenn es ein Kontrollkästchen oder Radio-Button hat es keine Länge (keine Zeichenfolgen drin), wenn es ein Textfeld ist, muss ich überprüfen, ob es Zeichen enthält. Die Seite wird dynamisch erstellt, manchmal kann ein Kontrollkästchen anders als ein Textfeld angezeigt werden.

Also mein Denken ist die Art der Eingabe zu finden, dann bestimmen, was zu tun ist.

Irgendwelche Vorschläge würden geschätzt.

Vielen Dank im Voraus.

+1

Keine große Sache, aber eine vorsichtigere Unterscheidung wäre hier angebracht: "Typ eines Eingabeelements" weicht massiv von "Typ einer Variablen" oder "Typ eines anderen Elements auf der Seite" ab. –

Antwort

52

Überprüfen Sie die type Eigenschaft. Würde das genügen?

+5

verwende es wie element.type, es würde textarea zurückgeben das Element ist ein textarea und so weiter. –

19

Wenn Sie die Art der Eingabe in Form überprüfen möchten, verwenden Sie folgenden Code:

<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

Sie müssen diese Kommentare nicht mehr verwenden: http://dorward.me.uk/www/comment-cdata/ –

3

Wenn Sie jQuery verwenden, können Sie leicht den Typ eines Elements überprüfen.

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

In ähnlicher Weise können Sie die anderen Typen überprüfen und entsprechende Maßnahmen ergreifen.

+9

Oder, wenn Sie Javascript verwenden, könnten Sie 'document.getElementById (elementId) .type' schreiben. Ich sehe nicht den Vorteil, den jQuery in diesem Fall bietet. – troelskn

+0

Dies ist eine Funktion (bedeutet Overhead), in einem Nicht-jQuery-Stil (zB nicht '.getType()', hat keinen Funktionsnamen und tut nichts mehr als '$ (element) [0] .type '(vorausgesetzt Sie hatten bereits das jQuery-Objekt) – Martijn

Verwandte Themen