JavaScript使用&&amp ;;验证多个无线电选择操作者

时间:2016-09-29 21:28:22

标签: javascript jquery

我试图通过从一个表单中选择一个特定的单选按钮和从另一个表单中选择一个特定的按钮,在JavaScript中使用单选按钮来显示div。我已将JS设置为such。我正在使用&&运算符尝试并且需要满足两个条件来运行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>

2 个答案:

答案 0 :(得分:1)

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

不是有效的逻辑测试,在语法上也是不正确的。例如,让我们说它在语法上是正确的,它看起来像:

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

这仍然永远不会回归真实。例如,让我们说选择等于&#34; ice&#34; ...&#34; ice&#34;永远不会等于'&#34; ice&#34; &#34; budget1&#34;与此同时,它在逻辑上是不可能的。相反,我认为你要做的是测试选择是否等于 &#34; ice&#34; &#34; budget1&#34; ...如果是这种情况,您要使用的声明是:

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

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

答案 1 :(得分:-1)

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