2016-09-29 79 views
-4

我想在JavaScript中使用单选按钮来显示一个div,只有通过从一个窗体中选择一个特定的单选按钮并从另一个窗体中的特定按钮满足两个条件。我已经将JS设置为such。我正在使用运算符来尝试并要求符合这两个条件才能运行jQuery,但它忽略了第二个条件。JavaScript验证多个无线电选择使用&&运算符

下面是代码:

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> 
+0

首先,你应该发布你的代码,而不是它的截图。其次,如何可以同时选择“冰”和“预算1”?你确定你不需要“或”吗?无论哪种方式,您都需要让变量,其逻辑运算符以及要测试的值和/或两侧的测试值,您不能只是说“如果A = B&C那么”,它就是“if A = B或A = C,则“ – soohoonigan

+0

如果A = B&C,那么是否没有办法写”?我将发布代码。 – Medi

回答

-1

你有& & “budget1”。这是一个字符串,所以总是如此。因此,使用& & budget1(假设budget1是一个变量)。

1
if (choice === "ice" && "budget1") 

不是有效的逻辑测试,也是语法错误。比方说,它的语法正确,它看起来像:

if (choice === "ice" && choice === "budget1") 

这仍然永远不会返回true。例如,假设选择等于“冰”......“冰”不可能同时等于“冰”“budget1”,这在逻辑上是不可能的。相反,我认为你要做的是测试如果选择等于或者“冰”“预算1”...如果是这样的话,您要使用的语句是:

if (choice === "ice" || choice === "budget1") 

这样,如果选择等于这两个值中的任何一个,那么该条件将评估为true。

+0

这是对可以做什么的一个很好的评估。我认为我的问题在这里是我只有1个工作变量,也许我应该有两种形式,然后我可以使用“if(choice ===”ice“&& choice2 ===”budget1“)”假设新变量被称为choice2。 – Medi

+0

雅,如果你需要两个单选按钮来“对齐”以显示div,那么你刚刚写的是正确的 – soohoonigan

+0

非常感谢您的帮助。 – Medi