2016-06-12 8 views
1

これまでうまく動作していたコードでエラーが発生しました。私はそれに何か変更を加えたかどうかはわかりません。SyntaxError:missing;前のステートメント| ReferenceError:[関数]が定義されていません

エラー:

SyntaxError: missing ; before statement

コードスニペット:

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>";} 
} 

私が最初に私のサイトをロードすると私はコンソールにこのエラーが発生します。私はのonchangeイベントでこの関数を呼び出して、私のhtmlでセレクトボタンをクリックすると、私はエラー

ReferenceError: ChangeOptions is not defined

しかし、私は条件演算子(IFS)を削除するとき、私は得ることはありませんを取得しますReferenceError:ChangeOptionsが定義されていません

誰かが私にこれをガイドできますか?

+1

これは、使用している「面白い」インデントスキームです。 – nnnnnn

+0

文法的な規則を臨時に守るようなビットですか? :) – Jonathan

+0

本当に? @nnnnnn –

答えて

0

文字列が内側の二重引用符で区切られています。外側には一重引用符を使用するか、バックスラッシュを使用して内側引用符をエスケープします。

など。 "This is a \"valid\" string"または'This is a "valid" string'もあります。

ちょうどgotcha使用のトリプルは、完全一致の場合と同じです。 を知っていない限り、doubleを使用する正確な理由は等価一致と等しいですが、そうではありません。それは私の2セントです。

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

ありがとうたくさん!!!!!それは助けになった!私はこれを念頭に置いておきます。もう一度ありがとう!!! :) –

+0

@RohitNairは答えを受け入れることを忘れないでください(私でない場合でも!) – Jonathan

0

ここに表示される問題はほとんどありません。内部の二重引用符をエスケープするか、外部の文字列に一重引用符を使用する必要があります。

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>'; 
    } 
    } 
関連する問題