-1

本文セクションに次のコードがあります。

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

5 に答える 5

0

どちらも違います。前のコードでは (!= オレンジ) と比較し、次のコードでは (= オレンジ) と比較します。

于 2013-04-12T08:57:24.777 に答える