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="" />

我想要做什么,如果用户从水果中选择苹果并从第二个下拉菜单中更改颜色,“正确的选择”将出现在#result 输入中。另一方面,如果用户从水果中选择芒果或橙子并更改颜色选项,则值将从#result 输入中清除。所以jquery代码会是这样的:

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

但它不起作用。更改任何水果,从#result 输入中清除值。但是,如果我在 if 语句中只使用一个条件,那么它运行良好。

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

为什么会这样?

4

4 回答 4

1
if($("#fruits").val()!="Mango" || $("#fruits").val()!="Orange"){

如果值为 NOT Mango 或 NOT Orange,则表示TRUE的情况。在您的情况下,您应该替换||为,&&这样如果用户选择 Mango 或 Orange,它将提示Right Choice.

于 2013-04-12T09:55:17.853 回答
0

用这个

  if(($("#fruits").val()!="Mango") && ($("#fruits").val()!="Orange")){
  $("#result").val(""); 
} else{
  $("#result").val("Right Choice"); 
}
});
于 2013-04-12T09:55:56.267 回答
0

改变

if($("#fruits").val()!="Mango" || $("#fruits").val()!="Orange"){

if( !($("#fruits").val()=="Mango" || $("#fruits").val()=="Orange")){
于 2013-04-12T09:56:39.590 回答
0

如果您希望水果不是芒果和橙子,您可以使用 &&(AND) 代替 OR。

于 2013-04-12T09:55:04.787 回答