本文セクションに次のコードがあります。
<form action="" method="post">
<select id="fruits" name="fruits">
<option>Apple</option>
<option>Mango</option>
<option>Orange</option>
</select>
<select id="color" name="color">
<option>Red</option>
<option>Green</option>
<option>Yellow</option>
</select>
<input type="text" id="result" value="" />
やりたいことは、ユーザーが果物からリンゴまたはマンゴーを選択し、2番目のドロップダウンメニューから色を変更すると、#結果入力に「正しい選択」が表示されるようになります。一方、ユーザーが果物からオレンジを選択し、色を変更するオプションを選択した場合、#結果入力に変化は見られません。したがって、jquery コードは次のようになります。
$("#color").change(function() {
if($("#fruits").val()!="Orange"){ $("#result").val("Right Choice"); }
});
しかし、理由はわかりません。このコードは正しく機能していません。すべての果物を選択すると、#result 入力のテキストが "Right Choice" に変更されます。しかし、次のようにコードを変更すると、機能します。
$("#color").change(function() {
if($("#fruits").val()=="Orange"){
/*--do nothing--*/
}else{
$("#result").val("Right Choice");
}
});
最初のコードと 2 番目のコードの論理条件は同じですが、最初のケースで jquery コードが機能しないのはなぜですか?
更新:条件と等しくないものを配置すると、正しく機能していることがわかりましたが、「または」演算子を使用すると、コードが機能しません:
$("#color").change(function() {
if($("#fruits").val()!="Orange" || $("#fruits").val()!="Mango"){
$("#result").val("Right Choice");
}
});
機能していませんが、機能しています:
$("#color").change(function() {
if($("#fruits").val()!="Orange"){
$("#result").val("Right Choice");
}
});