2014-10-19 22 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