2017-01-04 5 views
0

私は選択されているラジオボタンの番号に応じてラジオボタンを押します。変数値を変更する際に `alert`エラーが発生しました

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

var chanceoflive1 = 1; となり、すべて正常に動作します。最初のラジオボタンがあらかじめ選択されています。レンガから離れてレンガに戻ることなく、chanceoflive1は初期値0のままです。

+0

ありがとう!それは私の答えでしょう! –

+0

私はそれをマークするまで6分待たなければならない –

0

これは、ユーザーがチェックボックスをクリックしないと実際に何も選択しなかったためです。レンガをデフォルトのオプションにしたいので、スクリプトの最後にchoose('bricks')を呼び出すか、変数宣言にvar user = 'bricks';を設定するだけです。

関連する問題