2017-05-05 6 views
0

Alle.Uncaught ReferenceError: submitAllForms ist nicht definiert

Bitte beachten Sie den folgenden Code, der sollte, soweit ich sammeln kann, IDs a1 greifen, a2 & a3, und werfen sie in dem neuen Textfeld mit der ID 'kompiliert':

Javascript

<script type="text/javascript"> 
function submitAllForms() {   
var answer1 = (document.getElementById("a1").value); 
var answer2 = (document.getElementById("a2").value); 
var answer3 = (document.getElementById("a3").value);   
document.getElementById("compiler").innerHTML = ("<input type="text" id="compiled">" + "Question1? " + answer1 + " Question2? " + answer2 + " Question3? " + answer3 + "\nEnd" + "</input>"); 
} 
</script> 

HTML

<body> 
<form id="q1" method="post"> 
<p>Question1?</p> 
<input type="text" placeholder="answer" id="a1" /> 
</form> 
<form id="q2" method="post"> 
<p>Question2?</p> 
<input type="text" placeholder="answer" id="a2" /> 
</form> 
<form id="q3" method="post"> 
<p>Question3?</p> 
<input type="text" placeholder="answer" id="a3" /> 
</form> 
<input type="button" value="Submit" onclick="submitAllForms()" /> 
<form id="compiler" method="post"> 
</form> 
</body> 

Th e Problem, das ich habe ist, dass die Absenden-Button beim Auftreffen auf die Konsole den Fehler ausspuckt:

Uncaught Reference: submitAllForms nicht definiert ist

mir Welche keinen Sinn macht. Ich kann nicht sehen, wo ich falsch gelaufen bin.
Jede Hilfe wird geschätzt! Danke im Voraus!

+0

Es funktioniert für mich. Wo ist dein Skript platziert? Ist es in der gleichen HTML-Datei wie der Rest Ihres Codes? – Dana

+0

Es ist in der Abschnitt der gleichen Datei, ja. Ist das falsch? – Doofitator

Antwort

0

Sie haben Syntaxfehler in Javascript. Sie müssen " löschen (was schlechte Idee ist), oder sie entkommen \ verwenden, wie unten:

function submitAllForms() {   
var answer1 = (document.getElementById("a1").value); 
var answer2 = (document.getElementById("a2").value); 
var answer3 = (document.getElementById("a3").value);   
document.getElementById("compiler").innerHTML = ("<input type=\"text\" id=\"compiled\">" + "Question1? " + answer1 + " Question2? " + answer2 + " Question3? " + answer3 + "\nEnd" + "</input>"); 
} 

Es ist gute Idee Editor mit Syntaxhervorhebung zu verwenden. Nach dem schnellen Kopieren-Einfügen sah ich, dass Teile des Codes Strings sein sollten, aber sie waren es nicht.

Escaping Sonderzeichen (see more in w3schools) können Sie Anführungszeichen usw. in Strings wie normale Zeichen darin verwenden.

+0

Danke. Das muss das Problem gewesen sein :) – Doofitator

0

Scheint OK zu funktionieren. Ein bisschen aufgeräumt, um Fehler mit der String-Verkettung zu entfernen, aber die Funktion wird vom Code wie geschrieben aufgerufen.

function submitAllForms() {   
 
var answer1 = document.getElementById("a1").value; 
 
var answer2 = document.getElementById("a2").value; 
 
var answer3 = document.getElementById("a3").value; 
 

 
document.getElementById("compiler").innerHTML = "<input type=text id=compiled>Question1? " + answer1 + " Question2? " + answer2 + " Question3? " + answer3 + "\nEnd</input>"; 
 
}
<body> 
 
<form id="q1" method="post"> 
 
<p>Question1?</p> 
 
<input type="text" placeholder="answer" id="a1" /> 
 
</form> 
 
<form id="q2" method="post"> 
 
<p>Question2?</p> 
 
<input type="text" placeholder="answer" id="a2" /> 
 
</form> 
 
<form id="q3" method="post"> 
 
<p>Question3?</p> 
 
<input type="text" placeholder="answer" id="a3" /> 
 
</form> 
 
<input type="button" value="Submit" onclick="submitAllForms()" /> 
 
<form id="compiler" method="post"> 
 
</form> 
 
</body>

Verwandte Themen