2012-04-13 13 views
1

Nun, ich habe einige Checkboxen mit ID = '0', '1', '2', '3' usw. So muss ich Text von Kontrollkästchen bekommen. Hier ist der Code der Checkboxen in PHP.Javascript innerhtml der Checkbox

'<input id="'.$i.'"type="checkbox" name="option1" value="a1" onclick="checkYears()">'.$years[$i].'</input> 

Also ich brauche $ Jahre [$ i] -Wert. Ich benutze diesen Code.

while (bool==false) 
    { 
     if (document.getElementById(i)!=null) 
     { 
      if (document.getElementById(i).checked) 
      { 
       years.push(1); 
       yearsValue.push(document.getElementById(i).innerHTML); 
       document.getElementById(i).innerText="WORKS"; 
       console.log(yearsValue[i]); 
      } 
      else 
      { 
       years.push(0); 
       yearsValue.push(document.getElementById(i)).innerHTML); 
       console.log(yearsValue[i]); 
      } 
     } 
     else 
     { 
      bool=true; 
     } 
     i++; 
    } 

0 und 1 ist hinzugefügt in Ordnung, aber wenn ich versuche innerHTML- dort zu verwenden ist und nicht definierte Werte in consle.

Irgendwelche Vorschläge?

+0

danke, für Sie beantwortet sie hilfreich waren. –

Antwort

6

InnerHTML erhält den HTML Inhalt eines Elements. d.h. die Daten zwischen der Startmarke und der Endmarke. Eingaben sind leere Elemente, sie können keinen Inhalt haben (in HTML (im Gegensatz zu XHTML) können sie auch kein End-Tag haben). Ihr HTML ist ungültig und Sie sollten a validator verwenden.

Sie wollen wahrscheinlich etwas wie folgt aus:

<label> 
    <input type="checkbox"> 
    <span>Text label</span> 
</label> 

Dann könnten Sie erhalten:

checkbox.parentNode.innerHTML; 

oder

checkbox.parentNode.getElementsByTagName('span')[0].innerHTML 
0

Ein Eingangselement keine innerHTML-, weil das Element soll selbstschließend sein:

<input type="checkbox" name="checkbox" value="1" />

0

Sie können nicht, weil <input> nicht nahe Tag haben, tut sie dies nicht haben innerHTML Eigenschaft:

Muss ein Start-Tag haben und darf kein Ende-Tag haben.

Von .

Ich empfehle Ihnen, Kombination von label und Eingabe zu verwenden.

0

Idealerweise hat ein Eingabeelement kein innerHTML. Das bedeutet, dass Sie keinen umschließenden HTML-Inhalt im Eingabeelement haben können. Sie können nur Wert des Eingabeelements haben.