2017-01-04 29 views
0

我有单选按钮,根据选择哪个单选按钮提醒不同的号码。当更改变量值时出现“警报”错误

var radioButtons = document.querySelectorAll('input[type=radio]'); 
 

 
var chanceoflive1 = 0; 
 
var user; 
 
function choose(choice){ 
 
    user = choice; 
 
} 
 

 
function changechanceoflive1(){ 
 
    if (user == 'bricks') { 
 
     chanceoflive1 = 1; 
 
    } 
 
    else if (user == 'wood') { 
 
     chanceoflive1 =3 
 
    } 
 
    else if (user == 'stone') { 
 
     chanceoflive1 = 2 
 
    } 
 
    alert(chanceoflive1); 
 
}
<div id="radiobuttons" class="container" name="buttons" align=center> 
 

 
    <h2>I Want my Building to be Made of:</h2> 
 

 
    <ul> 
 
    <li> 
 
    <input type="radio" id="brick-option" name="material" value="1" onClick="choose('bricks')" checked="checked"> 
 
    <label for="brick-option">Bricks</label> 
 

 
    <div class="check"></div> 
 
    </li> 
 

 
    <li> 
 
    <input type="radio" id="wood-option" name="material" value="3" onClick="choose('wood')"> 
 
    <label for="wood-option">Wood</label> 
 

 
    <div class="check"> 
 
     <div class="inside"></div> 
 
    </div> 
 
    </li> 
 

 
    <li> 
 
    <input type="radio" id="stone-option" name="material" value="2" onClick="choose('stone')"> 
 
    <label for="stone-option">Stone</label> 
 

 
    <div class="check"> 
 
     <div class="inside"></div> 
 
    </div> 
 
    </li> 
 
    </ul> 
 
</div> 
 

 
<form action="chooseheight.html"> 
 
    <div class="wrapper"> 
 
    <button class="button" onClick="changechanceoflive1()" align=center>Submit</button> 
 
    </div> 
 
</form>

当我点击的木材,它提醒3,这是完美的。当我点击石头时,它会提醒2,这很棒。虽然,当我点击砖块时,它会提醒0.为什么?

+2

因为它是在一个点击事件的初始值,即使第一个单选按钮最初选择它从未被点击所以它会显示'0'直到你真的点击它来选择它。 –

+2

你为什么不使用价值并获得被选中的广播? – epascarello

回答

1

将第2行更改为 var chanceoflive1 = 1; 并且所有操作均按预期工作。初始单选按钮被预先选定。如果没有点击的砖块掉,然后回到砖,chanceoflive1仍然是0

+0

谢谢!这将是我的答案! –

+0

我必须等6分钟,直到我可以标记它 –

0

这是因为用户没有实际选择什么,如果他不点击任何复选框。由于您希望将砖块设置为默认选项,因此可以在脚本末尾调用choose('bricks'),或者在变量声明中只设置var user = 'bricks';

相关问题