2014-10-19 59 views
0

我有一个人可以回答yes或no的问题列表。最后,我想展示这个问题,他们是否回答是或否,以及关于结果的段落。我无法让我的if/else语句正常工作。jQuery if/else基于输入值

HTML:

<ol> 
     <li id='q1'> 
      <span>Are any of your valuables visible from the street?</span> 
      <input type="checkbox" class="calc" name="street" value="-1" /> yes 
      <input type="checkbox" class="calc" name="street" value="1" /> no 
      <input type="checkbox" name="street" value="0" /> n/a 
     </li> 
</ol> 

<div class='darkBtn' id='results'>Get Results ></div> 

JS:

$('#results').click(function(){ 
    var q1 = $('li#q1 input:checkbox:checked.calc').val(); 

    if (q1 == 1) { 
     console.log("You answered No"); 
    } else { 
     console.log("You answered Yes"); 
    } 
}); 

我已经想尽变化我能想到的,但控制台总是打印出 “您的回答是”。

+0

是对不起,我忘了补充一点,但我没有尝试添加,在我的代码,仍然没有得到正确的结果 – 2014-10-19 03:36:46

+0

你为什么要传递值jQuery的?只需使用它'q1 == 1'。 – undefined 2014-10-19 03:38:00

+1

你确定你也想在这里复选框吗?这看起来像你应该使用单选按钮。 – Antiga 2014-10-19 03:38:23

回答

0

它看起来像你的意思是使用单选按钮,而不是复选框。我使用单选按钮组合了一个快速小例子。

$(function(){ 
    $("#results").click(function(){  
     var val = $('input[name=street]:checked').val(); 
     if(val == 1) { 
      console.log('no'); 
     } else { 
      console.log('yes'); 
     } 
    }); 
}); 

fiddle

+0

谢谢!这似乎工作 - 单选按钮是否有很大的不同?我没有设计网页,所以我不能从复选框更改为无线电(没有得到批准)(愚蠢,我知道) – 2014-10-19 03:50:45

+0

它也可以用复选框来完成。你想让你的用户能够选择多个答案吗?如果没有,这就是你应该需要得到你的批准... – Antiga 2014-10-19 03:53:18

+1

哈哈是啊同意。感谢您的帮助。 – 2014-10-19 03:56:52

0

首先你的复选框不应该具有相同的name属性。

那么就应该用抢的选择问题:

$('li#q1 input[type="checkbox"].calc:checked') 

此外,它显示了要单选按钮而不是复选框,在这种情况下,你可以使用相同的name

更新:fiddle

+0

我试图做出这些改变,它仍然无法正常工作。 – 2014-10-19 03:43:52

+0

我正要做一个小提琴,但它看起来像@Antiga已经做到了,如果这不符合您的需求,请让我知道... – Huafu 2014-10-19 03:47:26

+0

好吧,无论如何都添加了小提琴,这是与复选框一起工作:http://jsfiddle.net/ze0qbxzb/ – Huafu 2014-10-19 03:54:11