• ベストアンサー

ラジオボタンを使って文字を入力するには?

下記のようなプログラムで、 ラジオボタンでAMかPMにチェックを入れると、 下の表の欄に●が入るようにしたいのですが、 どうしたらよいのでしょうか。 どうかよろしくお願いします。 午前<input type="radio" name="ra1"> 午後<input type="radio" name="ra2"> <table> <tr> <td>名前</td><td>AM</td><td>PM</td> <td>Aさん</td><td></td><td></td> <td>Bさん</td><td></td><td></td> </tr> </table>

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.3

<html><body> <div id="b"></div> 午前<input type="radio" name="ra"> 午後<input type="radio" name="ra"> <hr> <table id="a" border="1"> <tr><th>名前</th><th>午前</th><th>午後</th></tr> <tr><th>Aさん</th><td></td><td></td></tr> <tr><th>Bさん</th><td></td><td></td></tr> <tr><th>Cさん</th><td></td><td></td></tr> </table> <script> window.onload = function(){ for(i=1,ht='';i<$('a').rows.length;i++) ht+='<a href="#" onClick="set('+i+')">'+$tv('a',i,0)+'</a> '; $('b').innerHTML=ht; } function set(n){for(i=1;i<3;i++) $('a').rows[n].cells[i].innerText=$c('ra',i-1)} function $(n){return document.getElementById(n)} function $c(s,n){ return (document.getElementsByName(s)[n].checked)?'●':''} function $tv(s,y,x){ return $(s).rows[y].cells[x].innerText} //勉強するというのだから、短くしても大丈夫だよね! </script> </body></html>

noname#125826
質問者

お礼

ご回答ありがとうございます。 全て解決しました。 本当にありがとうございました。 ポイントをたくさん差し上げたいのですが20が上限で残念です。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#84373
noname#84373
回答No.2

<html><body> <select id="b" style="width:200px"></select> 午前<input type="radio" name="ra"> 午後<input type="radio" name="ra"> <input type="button" value="Set" onClick="set()"> <hr> <table id="a" border="1"> <tr><th>名前</th><th>午前</th><th>午後</th></tr> <tr><th>Aさん</th><td></td><td></td></tr> <tr><th>Bさん</th><td></td><td></td></tr> <tr><th>Cさん</th><td></td><td></td></tr> </table> <script> window.onload = function(){ tb=$('a'); for(i=1;i<tb.rows.length;i++){ o=document.createElement('option'); o.value=i; o.innerHTML=tb.rows[i].cells[0].innerText; $('b').insertBefore(o); } } function set(){ n=document.getElementById('b').value; lr=(document.getElementsByName('ra')[0].checked==true)?1:2; $('a').rows[n].cells[1].innerText=(document.getElementsByName('ra')[0].checked==true)?'●':''; $('a').rows[n].cells[2].innerText=(document.getElementsByName('ra')[1].checked==true)?'●':''; } function $(n){return document.getElementById(n);} </script> </body></html>

noname#125826
質問者

補足

ご回答ありがとうございます。 これから自分で組めるように勉強しようと思っていますが、 急ぎで必要だったので大変助かりました。 もう一点だけ希望を述べさせてください。 できたらAさんBさんCさん…の選択を 氏名をクリック(テキストリンク)して選べるようにしたいのですが、 もし可能でしたら教えていただけますか。 申し訳ありませんがよろしくお願いします。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

Aさん、Bさんを入力する仕組みがないみたいですが、 AMをチェックしたらすべての人のAMにチェックしてよいのですか?

noname#125826
質問者

補足

説明不足ですみません。 できれば… Aさんの欄をクリックしてから、 ラジオボタンでAMを選ぶび、 確定ボタンをクリックすると AさんのAMに●がはいる このような感じなのですがよろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A