- ベストアンサー
チェックボックスに連動するテキストエリア
初心者なので教えて下さい。 よく、アクセス解析などで、「テキストエリア内のタグをコピーしてお使い下さい」というものがありますが、これを、複数のチェックボックスを用意して、下にテキストエリアを用意して、チェックボックスの複数選択の組み合わせでテキストエリアの内容を切り替え表示する、というものを作りたいのですが、どなたか教えていただきたけますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
32個目は要注意! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <style type="text/css"> </style> <body> <form id="chk"> <p> <input type="checkbox" id="c0">Check0<br> <input type="checkbox" id="c1">Check1<br> <input type="checkbox" id="c2">Check2<br> <input type="checkbox" id="c3">Check3<br> <input type="checkbox" id="c4">Check4<br> <input type="checkbox" id="c5">Check5<br> <input type="checkbox" id="c6">Check6<br> <input type="checkbox" id="c7">Check7<br> <input type="checkbox" id="c8">Check8<br> <input type="checkbox" id="c9">Check9<br> <input type="checkbox" id="c10">Check10<br> <input type="checkbox" id="c11">Check11<br> <input type="checkbox" id="c12">Check12<br> <input type="checkbox" id="c13">Check13<br> <input type="checkbox" id="c14">Check14<br> <input type="checkbox" id="c15">Check15<br> </p> <textarea value="" id="t0" cols="30" rows="10"></textarea> </form> <script type="text/javascript"> //@cc_on addEvent( 'chk', 'click', setText); function addEvent(elementId, evt, eventHandler, flag){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; element./*@if(1)attachEvent('on'+ @else @*/addEventListener(/*@end@*/evt, eventHandler, flag); } function setText(){ for(var i=0,n=0;i<16;i++) n=n*2+document.getElementById('c'+i).checked*1; with( document.getElementById('t0') ){ value = n+'番目のファイルから読み込む!'; focus(); select(); } } </script>
その他の回答 (2)
他のファイルを読み込む技量があるのなら大丈夫だね。 それぞれのcheckboxの値を2進法のビットに見立てて 数値を形成すればいいのでは? それなら32個までなら余裕っしょ!?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <style type="text/css"> </style> <body> <form> <p id="chk"> <input type="checkbox" id="c0">Check0<br> <input type="checkbox" id="c1">Check1<br> <input type="checkbox" id="c2">Check2<br> </p> <textarea value="" id="t0" cols="30" rows="10"></textarea> </form> <script type="text/javascript"> //@cc_on addEvent( 'chk', 'click', setText); function addEvent(elementId, evt, eventHandler, flag){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; element./*@if(1)attachEvent('on'+ @else @*/addEventListener(/*@end@*/evt, eventHandler, flag); } function setText(){ var str =''; if( document.getElementById('c0').checked ) { str += 'Click c0\n' } if( document.getElementById('c1').checked ) { str += 'Click c1\n' } if( document.getElementById('c2').checked ) { str += 'Click c2\n' } with( document.getElementById('t0') ){ value = str; focus(); select(); } } </script>
お礼
ご返信ありがとうございます。 テキストエリアに表示されるテキストは、別ファイルで複数選択の全組み合わせの数だけあり、その組み合わせによって、該当するファイルを呼び出してテキストエリアに表示する、という事をしたいと思っています。 質問の通り、テキストエリアには貼付け用タグを表示したいので、ご回答の内容ではちょっと違うのです。 どのようにすれば良いでしょうか?
お礼
なるほど!!! 解決しました。^o^ ありがとうございます ほんと32個目は要注意ですね(爆