Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何书写';不等于';jquery中的运算符是否正确_Jquery - Fatal编程技术网

如何书写';不等于';jquery中的运算符是否正确

如何书写';不等于';jquery中的运算符是否正确,jquery,Jquery,我的正文部分有以下代码: <form action="" method="post"> <select id="fruits" name="fruits"> <option>Apple</option> <option>Mango</option> <option>Orange</option> </select> &

我的正文部分有以下代码:

<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="" />
但不知道为什么,这段代码工作不正常,选择所有的结果将#result input的文本更改为“Right Choice”。但是,如果我按以下方式更改代码,它将正常工作:

$("#color").change(function() {
    if($("#fruits").val()=="Orange"){
        /*--do nothing--*/
    }else{
        $("#result").val("Right Choice");
    }
});
$("#color").change(function() {
    if($("#fruits").val()!="Orange"){
        $("#result").val("Right Choice"); 
    }
});
第一个代码和第二个代码具有相同的逻辑条件,但为什么jquery代码不适用于第一种情况

更新:我发现,如果我将一个不等于条件,则代码工作正常,但如果我使用“或”运算符,则代码不工作:

$("#color").change(function() {
    if($("#fruits").val()!="Orange" || $("#fruits").val()!="Mango"){
        $("#result").val("Right Choice"); 
    }
});
它不起作用,但它起作用了:

$("#color").change(function() {
    if($("#fruits").val()=="Orange"){
        /*--do nothing--*/
    }else{
        $("#result").val("Right Choice");
    }
});
$("#color").change(function() {
    if($("#fruits").val()!="Orange"){
        $("#result").val("Right Choice"); 
    }
});

两者都不同。在上一个代码中,您将与(!=橙色)进行比较,在下一个代码中,您将与(=橙色)进行比较

有几个问题

  • 如果条件失败,则不更改文本框的值;这意味着,如果它已经说“正确的选择”,那么即使你选择了无效的选项(“橙色”),它也不会更新,仍然会说“正确的选择”
  • 您不会对
    #fruits
    元素的值变化做出反应,这意味着如果您选择一种颜色,然后选择“橙色”作为水果,它仍然会说“正确的选择”
  • 您可能应该执行类似的操作,同时将
    更改
    事件处理程序绑定到

    我还创建了一个类似这样的。

    程序

    $("#color").change(function() {
        if($("#fruits").val()!="Orange"){ 
            $("#result").val("Right Choice"); 
        } else {
            $("#result").val("");
        }
    });
    
    $(document).ready(function() {
        $("#color").change(function() {
        if($("#fruits").val()!="Orange"){ $("#result").val("Right Choice"); }
        });
    });
    

    这对我更有效(不一定是你想要的)


    您的代码应该在jquery的dom就绪函数中打开,如下所示

    $("#color").change(function() {
        if($("#fruits").val()!="Orange"){ 
            $("#result").val("Right Choice"); 
        } else {
            $("#result").val("");
        }
    });
    
    $(document).ready(function() {
        $("#color").change(function() {
        if($("#fruits").val()!="Orange"){ $("#result").val("Right Choice"); }
        });
    });
    

    if($(“#fruits”).val()==“Orange”){
    您错过了一个在这里输入错误的
    =
    ,在原始代码中有double==。但是代码不起作用。它似乎可以正常工作。如果您首先使用
    $('#result').val清除
    #result
    字段,可能会更明显
    在您的情况下,当您选择芒果和苹果时,它工作正常,因为给定的条件不等于橙色,所以不显示任何内容,在下一种情况下,条件检查等于橙色,所以它显示正确的选择。