前提・実現したいこと
WordpressのContactform7でフォームを作成しています。
その中でradioボタンを使った選択分岐を行っているのですが、選択したradioボタンによって『<div id="output"></div>』のところに別のタグを表示させようとしております。
その際、document.write()や.insertAdjacentHTML()では思ったような表示とならなかったため.innerHTMLを使用してみたのですが、全く動作していないような状況です。
発生している問題・エラーメッセージ
エラーは出ませんが、表示もでません・・・
該当のソースコード
HTML
1<form name="cf7" class="wpcf7-form init"> 2***色々処理*** 3<ul> 4 <li><label><input onclick="myCheck();" type="radio" name="aaaa" value="選択肢1" checked="checked" /><span>選択肢1</span></label><li> 5 <li><label><input onclick="myCheck();" type="radio" name="aaaa" value="選択肢2" /><span>選択肢2</span></label><li> 6 <li><label><input onclick="myCheck();" type="radio" name="aaaa" value="選択肢3" /><span>選択肢3</span></label><li> 7</ul> 8<div id="output"></div> 9***色々処理*** 10</form>
Javascript
1<div id="output"></div> 2<script> 3 function myCheck() { 4 var flag = false; 5 var id = document.getElementById("output"); 6 for(var i=0; i<document.cf7.aaaa.length;i++){ 7 if(document.cf7.aaaa[i].checked){ 8 flag = true; 9 if(cf7.aaaa[i].value == "選択肢1"){ 10 id.innerHTML = '表示したい箇所'; 11 } 12 else if(cf7.aaaa[i].value == "選択肢2"){ 13 id.innerHTML = '表示したい箇所'; 14 } 15 else if(cf7.aaaa[i].value == "選択肢3"){ 16 id.innerHTML = '表示したい箇所'; 17 } 18 } 19 } 20 } 21</script>
試したこと
document.write()では新規ページ(上書き?)となってしまい、.insertAdjacentHTML()では表示するものの別のラジオボタンを押すと追記されて2行3行と増えてしまいました。
そこで.innerHTMLを使ってみたのですが全く動作しておりません。
表示したいものを先に非表示としておき、選択したものに合わせて表示に切り替える方法も考えましたが、フォームのデータをCSVに吐き出した時に非表示の部分もすべてCSVに取り込まれてしまうため、表示/非表示の方法は諦めました。
今後の勉強のためにも皆さまのお知恵をお借りできれば幸いです。
お手数おかけいたしますが、よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー