我试图在JavaScript中使用单选按钮,仅当两个条件满足时,通过从一个表单选择特定的单选按钮和从另一个表单选择特定的按钮来显示div。我已经这样设置了JS。我用的是&&操作符尝试并要求同时满足两个条件才能运行jQuery,但忽略第二个条件。
代码如下:
JS
//Front-end logic
$().ready(function(){
$("form.vacation").submit(function(event){
event.preventDefault();
var choice = $("input:radio[name=operator]:checked").val();
if (choice === "ice" && "budget1") {
$("#swiss").show();
} else if (choice === "kayak") {
$("#patagonia").show();
} else if (choice === "scuba") {
$("#hawaii").show();
} else if (choice === "lounge") {
$("#fiji").show();
}
});
});
HTML
<body>
<div class="container">
<form class="vacation">
<div class="radio">
<input type="radio" name="operator" value="ice">
<label for="ice">I like to go ice climbing.</label>
</div>
</form>
</div>
<div class="container">
<form class="vacation">
<div class="radio">
<input type="radio" name="operator" value="budget1">
<label for="budget1">I have $5000 to spend.</label>
</div>
</form>
</div>
</body>
</html>
if (choice === "ice" && "budget1")
不是一个有效的逻辑测试,在语法上也不正确。举个例子,假设它的语法是正确的,它看起来像:
if (choice === "ice" && choice === "budget1")
仍然不会返回true。例如,假设选择等于"冰"……"ice"不可能同时等于"ice" 和 "budget1",这在逻辑上是不可能的。相反,我认为你要做的是测试选择是否等于"ice"或"budget1"…如果是这种情况,你要使用的语句是:
if (choice === "ice" || choice === "budget1")
这样,如果choice等于这两个值中的任何一个,则条件将被计算为真。
有&&"budget1"。这是一个字符串,所以总是为真。所以使用&&Budget1(假设Budget1是一个变量)