※ ChatGPTを利用し、要約された質問です(原文:javascriptでラジオボタンのが変更できない)
javascriptでラジオボタンの変更ができない
このQ&Aのポイント
javascriptを勉強中の方が、麻雀の計算をするサイトを作成していますが、ラジオボタンの変更がうまくできません。
具体的には、ロンの項目でチェックを入れた後、ツモの項目でチェックを入れることができません。
javascriptのコードを確認してもうまくいかない原因が分からないので、アドバイスをいただきたいです。
javascriptでラジオボタンのが変更できない
javascriptを勉強中なのですが
練習で下記のような麻雀の計算をしてくれるサイトを作ってみましたがうまく反応しません。
http://tegarude.sakura.ne.jp/mafu/form.html
できない点は、例えば、ロンの項目で面前のチェックの時、ツモの項目にいいえが入りますが、
その後、ツモの項目で平和のチェックをいれようとしてもチェックが入りません。
javascriptで操作するようにしたのですがどうもうまくいきません。
単純なこと簡単なことなのかもしれませんが
どなたかご教授願えませんでしょうか?
ソースコードが長いのでjavascriptの記述のみ載せています。
サンプルのURLを参考にして下さい。
function on(){
//ロン・ツモ・待ち・雀頭の値を取得
function mjk01(m1,m2){
for (j=0; j<m1.length; j++){
if(m1[j].checked){
m2.innerHTML=m1[j].value;
}
}
}
mjk01(document.form1.radio2,document.getElementById("a00"));
mjk01(document.form1.radio3,document.getElementById("a01"));
mjk01(document.form1.radio4,document.getElementById("a02"));
mjk01(document.form1.radio5,document.getElementById("a03"));
//formプロパティの省略
formt=document.form1;
//ロン項目設定
if(formt.radio2[0].checked){
formt.radio3[3].checked=true;
formt.radio7[0].checked=true;
formt.radio9[0].checked=true;
formt.radio11[0].checked=true;
formt.radio13[0].checked=true;
}
if(formt.radio2[1].checked){
formt.radio3[3].checked=true;
formt.radio4[0].checked=true;
formt.radio5[2].checked=true;
formt.radio6[0].checked=true;
formt.radio8[0].checked=true;
formt.radio10[0].checked=true;
formt.radio12[0].checked=true;
}
if(formt.radio2[2].checked){
formt.radio3[3].checked=true;
}
//ツモ項目設定
if(formt.radio3[0].checked){
formt.radio2[3].checked=true;
formt.radio4[0].checked=true;
formt.radio5[2].checked=true;
formt.radio6[0].checked=true;
formt.radio8[0].checked=true;
formt.radio10[0].checked=true;
formt.radio12[0].checked=true;
}
if(formt.radio3[1].checked){
formt.radio2[3].checked=true;
formt.radio4[0].checked=true;
formt.radio5[2].checked=true;
}
if(formt.radio3[2].checked){
formt.radio2[3].checked=true;
}
//面子の設定
function mentsu(m1,m2,m3){
if(m1[0].checked){
m2[1].value=4;
m2[2].value=16;
m2[3].value=8;
m2[4].value=32;
}
if(m1[1].checked){
m2[1].value=2;
m2[2].value=8;
m2[3].value=4;
m2[4].value=16;
}
for(i=0; i<m2.length; i++){
if(m2[i].checked){
m3.innerHTML=m2[i].value;
}
}
}
mentsu(document.form1.radio7,document.form1.radio6,document.getElementById("a04"));
mentsu(document.form1.radio9,document.form1.radio8,document.getElementById("a05"));
mentsu(document.form1.radio11,document.form1.radio10,document.getElementById("a06"));
mentsu(document.form1.radio13,document.form1.radio12,document.getElementById("a07"));
//小計をすべて数字に変換
num0=document.getElementById("a00").innerHTML;
num1=document.getElementById("a01").innerHTML;
num2=document.getElementById("a02").innerHTML;
num3=document.getElementById("a03").innerHTML;
num4=document.getElementById("a04").innerHTML;
num5=document.getElementById("a05").innerHTML;
num6=document.getElementById("a06").innerHTML;
num7=document.getElementById("a07").innerHTML;
num0 = parseFloat(num0);
num1 = parseFloat(num1);
num2 = parseFloat(num2);
num3 = parseFloat(num3);
num4 = parseFloat(num4);
num5 = parseFloat(num5);
num6 = parseFloat(num6);
num7 = parseFloat(num7);
//総合計の算出
document.getElementById("total").innerHTML=num0+num1+num2+num3+num4+num5+num6+num7;
}
お礼
ありがとうございました。できました。これを元に勉強していきたいと思います