Javascriptの勉強の一環として、
フォーム外にあるチェックボックスの値をフォーム内に1つのテキストに表示させ、
尚且、全選択をした場合も同じく表示できるようにしたいと思っています。
やりたい事
<input type="checkbox" name="allChecked" id="all">全選択 <input type="checkbox" class="fruits" onClick="check(this.form)" value="りんご" name="chk" />りんご <input type="checkbox" class="fruits" onClick="check(this.form)" value="みかん" name="chk" />みかん <input type="checkbox" class="fruits" onClick="check(this.form)" value="バナナ" name="chk" />バナナ <form name="fruitsform"> <input value="" size="50" type="text" name="fruits_all"> </form>
このような形で、
フォーム外にあるClass名『fruits』の値をフォーム内にあるName名『fruits_all』のテキストに表示させ、
あわせて全選択をチェックした場合も、全ての値をテキストに表示させたいです。
試した事
<script> $(function() { $('#all').on('click', function() { $("input[name='chk']").prop('checked', this.checked); }); }); function check(f){ f.fruits_all.value=""; for (var i=0; i<f.length;i++){ if(f[i].className=="fruits" && f[i].checked==true){ f.fruits_all.value += f[i].value+(','); } } f.fruits_all.readOnly=(f.fruits_all.value!=""); } </script>
Javascriptで上のような記載を試してみたのですが、この方法だと
<form name="fruitsform"> <input type="checkbox" name="allChecked" id="all">全選択 <input type="checkbox" class="fruits" onClick="check(this.form)" value="りんご" name="chk" />りんご <input type="checkbox" class="fruits" onClick="check(this.form)" value="みかん" name="chk" />みかん <input type="checkbox" class="fruits" onClick="check(this.form)" value="バナナ" name="chk" />バナナ <input value="" size="50" type="text" name="fruits_all"> </form>
このように全てのチェックボックスを同じフォーム内に記載すれば、
チェックした値がテキスト内に表示されるのですが、
全選択をした場合、表示上ではチェックされても、テキストに全ての値を表示させる事ができませんでした。
※表示される場合は、りんご,みかん,バナナ といったように『,』が入るようにしたく、こう記述しています。
初歩的な事かもしれませんが、
正解が見えない為、お知恵を貸して頂ければ幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/09 07:38