2016-06-12 11 views
1

Ich erhalte einen Fehler im Code, der vorher gut funktioniert hat. Ich bin mir nicht sicher, ob ich etwas daran geändert habe.SyntaxError: fehlt; vor Aussage | ReferenceError: [function] ist nicht definiert

Fehler:

SyntaxError: missing ; before statement

Code Snippet:

function ChangeOptions() { 
var x = document.getElementById("Select1").value; 
var y = document.getElementById("Select2"); 
var z = document.getElementById("Select3"); 

if(x == "Sch"){y.innerHTML = "<option value="Sch1">Sch1</option><option value="Sch1">Sch2</option>"; 
       z.innerHTML = "<option value="1">1</option><option value="1" value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>";} 
if(x == "COMM"){y.innerHTML = "<option value="COMM1">COMM1</option><option value="COMM2">COMM2</option>"; 
       z.innerHTML = "<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>";} 
if(x == "Inst"){y.innerHTML = "<option value="Inst1">Inst1</option><option value="Inst2">Inst2</option>"; 
       z.innerHTML = "<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>";} 
} 

Als ich anfangs meine Seite laden erhalte ich diesen Fehler in der Konsole. Wenn ich in meiner HTML-Datei auf der Auswahltaste klicken, die diese Funktion onchange Ereignis auf rufen, dann bekomme ich einen Fehler

ReferenceError: ChangeOptions is not defined

Aber, wenn ich die bedingten Operatoren (ifs) entfernen, dann bekomme ich nicht die ReferenceError: ChangeOptions ist nicht definiert

Kann mir bitte jemand durch diese Anleitung helfen?

+1

Das ist ein "interessantes" Einzugschema, das Sie verwenden. – nnnnnn

+0

Ein bisschen wie die Ad-hoc-Einhaltung von grammatikalischen Regeln? :) – Jonathan

+0

Really? @nnnnnn –

Antwort

0

Ihre Strings werden durch die inneren doppelten Anführungszeichen zerrissen. Verwenden Sie einzelne Anführungszeichen auf der Außenseite oder umgehen Sie die inneren Anführungszeichen mit einem umgekehrten Schrägstrich.

z. "This is a \"valid\" string" oder 'This is a "valid" string' auch.

Nur ein Gotcha - Verwenden Sie Triple gleich für genaue Gleichheit. Es sei denn, Sie wissen, der genaue Grund, doppeltes Equality Matching zu verwenden, nicht tun. Das sind meine 2 Cent.

function ChangeOptions() { 
    var x = document.getElementById("Select1").value; 
    var y = document.getElementById("Select2"); 
    var z = document.getElementById("Select3"); 

    if (x === "Sch") { 
    y.innerHTML = '<option value="Sch1">Sch1</option><option value="Sch1">Sch2</option>'; 
    z.innerHTML = '<option value="1">1</option><option value="1" value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>'; 
    } 
    if (x === "COMM") { 
    y.innerHTML = '<option value="COMM1">COMM1</option><option value="COMM2">COMM2</option>'; 
    z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>'; 
    } 
    if (x === "Inst") { 
    y.innerHTML = '<option value="Inst1">Inst1</option><option value="Inst2">Inst2</option>'; 
    z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>'; 
    } 
} 
+1

Vielen Dank !!!!! Es half! Das werde ich mir merken. Noch einmal vielen Dank!!! :) –

+0

@RohitNair vergessen Sie nicht, eine Antwort zu akzeptieren (auch wenn nicht meins!) – Jonathan

0

Wenige Probleme sehe ich hier. Sie müssen den doppelten Anführungszeichen in der Form entgehen oder lieber einfache Anführungszeichen für Strings außerhalb verwenden.

function ChangeOptions() { 
     var x = document.getElementById("Select1").value; 
     var y = document.getElementById("Select2"); 
     var z = document.getElementById("Select3"); 

     if(x == "Sch"){ 
     y.innerHTML = '<option value="Sch1">Sch1</option><option value="Sch1">Sch2</option>'; 
     z.innerHTML = '<option value="1">1</option><option value="1" value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>'; 
     }  
    if(x == "COMM") { 
     y.innerHTML = '<option value="COMM1">COMM1</option><option value="COMM2">COMM2</option>'; 
     z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>'; 
    } 
    if(x == "Inst") { 
     y.innerHTML = '<option value="Inst1">Inst1</option><option value="Inst2">Inst2</option>'; 
     z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>'; 
    } 
    }