2013-04-23 5 views
5

Arbeits Ich habe diesen Code, das funktioniert:getElementsByName mit getElementsById nicht

<script type="text/javascript" language="javascript"> 
function doStuff1(){ 
    var eml=document.getElementsByName('email')[0].value; 
     msg=document.getElementsByName('message')[0]; 
    msg.value = eml + ' ' + msg.value; 
    alert ('Message has been submitted'); 
    return true; //return false to test just messagebox and updated message textarea 
} 
</script> 

Allerdings, wenn ich getElementById statt getElementsByName verwenden dann funktioniert es nicht mehr. Das heißt, die Methode würde den Alarmdialog nicht anzeigen.

Natürlich habe ich ein id Attribut auf dem gleichen Tag mit dem name, wie id="email" name="email"

Diese Methode wird aufgerufen, wenn der Submit-Button in der Form angeklickt wird.

Was könnte das Problem sein?

+0

Sie können auch nur auf die Konsole für Fehler schauen und es wird Ihnen die Zeit sparen, viele Fragen zu schreiben. –

Antwort

4

getElementById gibt keine Sammlung von Elementen zurück, sondern nur ein einzelnes Element. document.getElementById('email')[0].value ist ein semantischer Fehler.

Entfernen Sie die [0] s.