我的身体部分有以下代码:
<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="" />
我想做什么,如果用户从水果中选择Apple或Mango并从第二个下拉菜单中更改颜色,“Right Choice”将出现在#result输入中。另一方面,如果用户从水果中选择橙色并更改颜色选项,则#result输入中不会显示任何变化。所以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");
}
});
第一个代码和第二个代码都具有相同的逻辑条件,但为什么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");
}
});
答案 0 :(得分:0)
两者都不同。在您之前的代码中,您将与(!= orange)进行比较,并在下一个代码中与(=橙色)进行比较。
答案 1 :(得分:0)
有一些问题。
#fruits
元素的值更改作出反应,这意味着如果您选择一种颜色,然后选择“橙色”作为水果,它仍然会说“正确”选择。” 您应该做一些类似的事情,同时将change
事件处理程序绑定到<select id="fruits">
:
$("#color").change(function () {
if ($("#fruits").val() != "Orange") {
$("#result").val("Right Choice");
}
else {
$("#result").val("");
}
});
$("#fruits").change(function() {
if(this.value != "Orange") {
$("#result").val("Right Choice");
}
else {
$("#result").val("");
}
});
我还创建了jsFiddle demo。
答案 2 :(得分:0)
像这样的东西
$("#color").change(function() {
if($("#fruits").val()!="Orange"){
$("#result").val("Right Choice");
} else {
$("#result").val("");
}
});
答案 3 :(得分:0)
这对我来说效果更好(不一定是你想要的)
$("#color, #fruits").change(function() {
var val = $("#fruits").val();
window.console && console.log("fruit:",val);
$("#result").val(val=="Orange"?"":"Right Choice");
});
答案 4 :(得分:0)
你的代码应该在jquery的dom ready函数中开启,就像这样
$(document).ready(function() {
$("#color").change(function() {
if($("#fruits").val()!="Orange"){ $("#result").val("Right Choice"); }
});
});