前提・実現したいこと
jQuery初心者です。現在、チェックボックスに入力された内容をフォームの上にテキストで表示し、自分が何を選んでいるのか見やすくするプログラムを書いています。 実現したい挙動は、何もチェックされていない状態の時は「無し」と表示され、チェックされると「無し」が消えてチェックされた内容が表示。複数チェックされると項目が増えていき、チェックがはずれるとテキストの内容も消えます。更に、チェックボックスの横にはクリアボタンが置いてあり、押すとチェックが全部はずれ、テキストの内容は「無し」に戻ります。
発生している問題
フォームの上にdd,dtタグを設置、チェックボックスと連動して「無し」からチェック項目がappendで追加されていく所まではきているのですが、クリアボタンを押すと指定したidを含む要素ごと消えてしまうので、クリアした後にチェックするとテキストエリアには表示されない。
**チェックを解除するとテキストも消えるロジックが思いつかない。**問題は太字の2つになります。
該当のソースコー(HTML,jquery)
///フォーム上のテキスト部分 <dt>タグ:</dt> <dd id="tagValueContent"></dd> <dd id="tagValueContentNone">無し</dd> ///チェックボックス部分 <div class="tagcheck"> <input type="checkbox" name="tag" id="no37" value="tag1" /> <label for="no37"><p>タグ1(仮)</p></label> <input type="checkbox" name="tag" id="no38" value="tag2" /> <label for="no38"><p>タグ2(仮)</p></label> <input type="checkbox" name="tag" id="no39" value="tag3" /> <label for="no39"><p>タグ3(仮)</p></label> <input type="checkbox" name="tag" id="no40" value="tag4" /> <label for="no40"><p>タグ4(仮)</p></label> <input type="checkbox" name="tag" id="no41" value="tag5" /> <label for="no41"><p>タグ5(仮)</p></label> <button>設定</button> <button name="clear" value="clear" type="button" id="clear-check">クリア</button> </div> ///スクリプト部分 $("input[name='tag']").change(function() { const defaultLabel = $('#tagValueContentNone').remove(); const tagValue = $(this).val(); console.log(tagValue); let tagValueContent; switch (tagValue) { case "tag1": tagValueContent = "タグ1"; break; case "tag2": tagValueContent = "タグ2"; break; case "tag3": tagValueContent = "タグ3"; break; case "tag4": tagValueContent = "タグ4"; break; case "tag5": tagValueContent = "タグ5"; break; } $("#tagValueContent").append(tagValueContent); $("#clear-check").click(function() { $('input:checkbox').prop('checked', false); $("#tagValueContent").remove(); $("#tagValueContentNone").append(defaultLabel); }); });
色々調べたのですが、うまくいかないので、何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/31 09:27
2018/07/31 09:34