2010-04-08 3 views
0

JavaScriptTypeError lors de l'application de la valeur d'une zone de texte à une variable

var textarea = document.getElementById("textarea").value; 

HTML

<textarea id="textarea" cols="100" rows="10">du hello!</textarea> 
+2

Vous devriez vraiment dire quelle erreur exacte vous obtenez ... – sth

+1

fonctionne pour moi ... quel navigateur utilisez-vous? – Kip

+0

@Kip Je l'exécute sur Safari et @sth il me donne l'erreur: "TypeError: Résultat de l'expression" document.getElementById ("textarea") '[null] n'est pas un objet. " – Espresso

Répondre

1

TypeError: Result of expression 'document.getElementById("textarea")' [null] is not an object.

Cette erreur indique qu'il n'a pas pu trouver un élément avec l'id "textarea". Le résultat de cette opération getElementById est donc null et vous ne pouvez pas accéder à .value sur null car il n'a aucune propriété.

La cause première de ceci est qu'aucun élément avec l'identifiant "textarea" n'existe au moment de la recherche. Soit vous avez une faute de frappe quelque part, soit votre script s'exécute à un moment où l'élément n'existe pas (encore). Si votre script est dans l'en-tête, vous aurez envie de l'écrire comme ceci:

document.ready = function() { 
    ... script here ... 
} 

Cela va retarder l'exécution jusqu'à ce que le document est prêt et tous les éléments existent.

+0

J'ai tout vérifié et la faute de frappe n'était pas le problème. J'ai essayé de mettre 'document.ready =() {/ * avec mon script ici * /}' dans la tête, débogué et n'a pas eu d'erreur, mais il n'a pas encore alerté la valeur de la zone de texte . J'ai mis le script dans le '' et j'ai travaillé. Le fichier .ready n'est-il pas spécifique à jQuery? Je fais une application web simple et je ne veux utiliser aucun framework JS. – Espresso

+0

@Espresso Non, 'document.ready' n'est pas spécifique à jQuery, mais il peut être spécifique au navigateur. Vous pouvez essayer 'window.onload' alternativement. Vous aurez besoin de poster plus de code, je pense que les pièges évidents ont été effacés par maintenant. – deceze

0

si vous utilisez éditeur wysiwyg comme tinymce ou bien. document.getElementById ("textarea"). Value; ne fonctionnera pas ils ont leur propre méthode pour obtenir des données.

<script type="text/javascript"> 
    function test(name){ 
    var textarea = document.getElementById("textarea").value; 
    alert(textarea) 
    } 
</script> 

<textarea id="textarea" cols="100" rows="10">du hello!</textarea> 
<a href="javascript:void(0)" onclick="javascript:test('this is just testing')">Test TextArea</a> 
+0

je veux dire dire éditeur de texte. autre que vous cam vérifier également qu'il devrait y avoir un tag avec id = "textarea" .vous pouvez vérifier votre navigateur pls référer ma réponse après l'édition. – Salil

Questions connexes