簡體   English   中英

根據單選按鈕確定的值在if語句中添加變量

[英]Add Variables In If Statement From Values Determined by Radio Buttons

我做了一個簡短的調查,該調查會根據您的選擇給出最終的價值。 問題在於,只有第一個廣播組的“人員”被添加到了最后……其他四個(組織+焦點+位置+進位)被忽略了。 有人可以幫我弄清楚我的代碼有什么問題嗎? 謝謝!

var score = 0;

var people = 0;
var org = 0;
var focal = 0;
var location = 0;
var carry = 0;

//PEOPLE
if ($('input:radio:checked').val() === "Obama") {
    people = -25;
}else if ($('input:radio:checked').val() === "Clinton"){
    people = -15;
}else if($('input:radio:checked').val() === "Bush"){
    people = 25;
}else if($('input:radio:checked').val() === "Romney"){
    people = 0;
}else if($('input:radio:checked').val() === "Windsor"){
    people = 25;
}else if($('input:radio:checked').val() === "Putin"){
    people = -25;
};

//ORG
if ($('input:radio:checked').val() === "Christian") {
    org = 20;
}else if ($('input:radio:checked').val() === "Boy Scouts"){
    org = 10;
}else if($('input:radio:checked').val() === "Freemason"){
    org = 30;
}else if($('input:radio:checked').val() === "KGB"){
    org = -20;
}else if($('input:radio:checked').val() === "Islam"){
    org = -30;
}else if($('input:radio:checked').val() === "Satanic Cult"){
    org = -50;
};


//FOCAL
if ($('input:radio:checked').val() === "Financial") {
    focal = 15;
}else if ($('input:radio:checked').val() === "Industry"){
    focal = 20;
}else if($('input:radio:checked').val() === "Medical"){
    focal = 5;
}else if($('input:radio:checked').val() === "Technology"){
    focal = 30;
}else if($('input:radio:checked').val() === "War"){
    focal = -30;
}else if($('input:radio:checked').val() === "Spy"){
    focal = -20;
};

//LOCATION
if ($('input:radio:checked').val() === "United Kingdom") {
    location = 5;
}else if ($('input:radio:checked').val() === "U.S.A."){
    location = -15;
}else if($('input:radio:checked').val() === "China"){
    location = 0;
}else if($('input:radio:checked').val() === "Germany"){
    location = 20;
}else if($('input:radio:checked').val() === "Russia"){
    location = -40;
}else if($('input:radio:checked').val() === "Mexico"){
    location = -60;
};

//CARRY
if ($('input:radio:checked').val() === "Tune") {
    var carry = 15;
}else if ($('input:radio:checked').val() === "Weight"){
    var carry = 25;
}else if($('input:radio:checked').val() === "Stick"){
    var carry = 0;
}else if($('input:radio:checked').val() === "Grudge"){
    var carry = -25;
}else if($('input:radio:checked').val() === "Ebola"){
    var carry = -80;
}else if($('input:radio:checked').val() === "Reset"){
    var carry = -100;
};

var score = (people + org + focal + location + carry);

if(score>50){
    $('.result').html('You Win!');
}else{
    $('.result').html('You Lose!');
}

$('p').html("Your score is " + score + ".");

問題是您的單選按鈕,它將始終在所有組中返回第一個檢查的單選值,而不是針對特定組。

解決方案是在選擇器中使用無線電組名,例如$('input[name="people"]:radio:checked').val()

除此之外,您可以使用類似如下的值映射來簡化代碼

var pmap = {
    Obama: -25,
    Clinton: -15,
    Bush: 25,
    Romney: 0,
    Windsor: 25,
    Putin: -25
};

var people = pmap[$('input[name="people"]:radio:checked').val()] || 0;

也為其他組創建類似的價值圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM