2017-11-08 10 views
0

私は電動工具をグレードするツールを開発中です。 select要素を更新すると、現在のオプションの値をチェックし、その周辺の特定の要素を無効にして有効にするようにしています。 私が実行している問題は、私が使っているif文が値を更新せず、デフォルトのオプションに固執してしまうことです。変数がif文内で正しく更新されない - Javascript/Jquery

私が使用していたコード:

Htmlの

<select class='form-control garDropdown' id='garDropdown' name='gar'> 
<option value='goedgekeurd'>Goedgekeurd</option> 
<option value='reparatie'>Na reparatie goedgekeurd</option> 
<option value='afgekeurd'>Afgekeurd</option></select> 

JS

$(document).on('change', '.garDropdown', function(){ 
var e = document.getElementById("garDropdown"); 
var y = e.value; 
    console.log(y); 
    if (y = "goedgekeurd"){ 
     $('.repverText').prop('disabled', 'disabled'); 
     $('.afkeurText').prop('disabled', 'disabled'); 
     $('.toelichtText').prop('disabled', 'disabled'); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
    } else if (y = "reparatie") { 
     $('.repverText').prop('disabled', 'disabled'); 
     $('.afkeurText').prop('disabled', 'disabled'); 
     $('.toelichtText').prop('disabled', false); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
    } else if (y = "afgekeurd"){ 
     $('.repverText').prop('disabled', false); 
     $('.afkeurText').prop('disabled', false); 
     $('.toelichtText').prop('disabled', false); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
} 
}); 

初期にconsole.log(y)は、正しい値ではなくはconsole.log(y)を印刷します声明の中には常にgoedgekeurdが印刷されています。私は過去を見ていて、これはこのフォーマットでも可能ですか?それとも、私は完全にこのことを最初から思いついていますか?

ありがとうございます!

EDIT:あなたは現在y = "goedgekeurd"の割り当ては、それは常にされるtrueの場合、この割り当ては失敗することはありませんので、あなたはいつもであれば最初の引き金となるテストしているJSコード

+0

ようにする必要がある場合あなたが '' goedgekeurd "'を 'y'に割り当てている間、常に真実になります:) – Alex

+0

私はあなたの' if'ステートメントが正しく書かれていないと信じています。単一の '= '記号は、基本的に変数の代入を意味します。 –

+0

@Alexそれは働いた!愚かな間違いは、そのことを知っているはずです。どうもありがとう! – BlackRose00101

答えて

1

のラインを忘れましたステートメント。

代入演算子に反対する等価演算子を使用する必要があります。したがって、 if(y == "goedgekeurd")は、渡された値が同じかどうかを確認します。また、===を使用して比較しているオブジェクトの値とタイプを確認することもできます。例えば、1 == "1"が真ですが、1 === "1"はfalseです。なぜなら、左側がin、右側が文字列だからです。

ソリューション:文が間違っている場合、これは代入文で、常に真のままの

$(document).on('change', '.garDropdown', function(){ 
var e = document.getElementById("garDropdown"); 
var y = e.value; 
console.log(y); 
if (y === "goedgekeurd"){ 
    $('.repverText').prop('disabled', 'disabled'); 
    $('.afkeurText').prop('disabled', 'disabled'); 
    $('.toelichtText').prop('disabled', 'disabled'); 
    $('.ipwText').prop('disabled', 'disabled'); 
    console.log(y) 
} else if (y === "reparatie") { 
    $('.repverText').prop('disabled', 'disabled'); 
    $('.afkeurText').prop('disabled', 'disabled'); 
    $('.toelichtText').prop('disabled', false); 
    $('.ipwText').prop('disabled', 'disabled'); 
    console.log(y) 
} else if (y === "afgekeurd"){ 
    $('.repverText').prop('disabled', false); 
    $('.afkeurText').prop('disabled', false); 
    $('.toelichtText').prop('disabled', false); 
    $('.ipwText').prop('disabled', 'disabled'); 
    console.log(y) 
} 
}); 
0
$(document).on('change', '.garDropdown', function(){ 
var e = document.getElementById("garDropdown"); 
var y = e.value; 
    console.log(y); 
    if (y === "goedgekeurd"){ 
     $('.repverText').prop('disabled', 'disabled'); 
     $('.afkeurText').prop('disabled', 'disabled'); 
     $('.toelichtText').prop('disabled', 'disabled'); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
    } else if (y === "reparatie") { 
     $('.repverText').prop('disabled', 'disabled'); 
     $('.afkeurText').prop('disabled', 'disabled'); 
     $('.toelichtText').prop('disabled', false); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
    } else if (y === "afgekeurd"){ 
     $('.repverText').prop('disabled', false); 
     $('.afkeurText').prop('disabled', false); 
     $('.toelichtText').prop('disabled', false); 
     $('.ipwText').prop('disabled', 'disabled'); 
     console.log(y) 
} 
}); 
0

実装。必ず実行if文

文はあなたが== `ない` = `それは常に最初の文に巻き込まれますので、声明` Y =「goedgekeurd」 `を使用する必要があること

if (y == "goedgekeurd"){ 
//Do something here 
} 
else if (y == "reparatie") { 
//Do something here 
} 
else if (y == "afgekeurd"){ 
//Do something here 
} 
+0

@ BlackRose00101試してみてください。これはあなたのために動作することを願っています。 – Faraz

関連する問題