質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

442閲覧

【jQuery】モーダルにチェックボックスの選択内容をかいたり、未選択状態を出したい

meiriairia

総合スコア2

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2023/09/11 12:24

編集2023/09/11 16:02

実現したいこと

jQueryについて初質問です

・チェックが一つもされてなくてボタン(押す)を押したら、
チェックを入れてください という文言をモーダルで出したい

・チェックがひとつでもされてて、ボタン(押す)を押したら、
A,
B,

[submitボタン]

選んだチェックの内容とそれを送信するボタン付きのモーダルで出したい

ご教授いただけると幸いです

<追記の問題点>
選択中のとき、あ 以外の選択肢が表示されない(推測できる原因:.eachをどこに入れるかわからない)

<!-- ボタン --> <div class="btn"> <button type="button" id="btn" class="btn01" name="check-btn">押す</button> </div> <!-- チェックボックス --> <ul> <li> <span> <input type="checkbox" class="cb01" id="pl01" name="select" value="あ"> <label for="pl01" class="select">a</label></span> </li> <li> <span> <input type="checkbox" class="cb01" id="pl02" name="select" value="い"> <label for="pl02" class="select"></label></span> </li> <li> <span> <input type="checkbox" class="cb01" id="pl03" name="select" value="う"> <label for="pl03" class="select"></label></span> </li> </ul> <!-- モーダル --> <div class="modal-container"> <div class="modal-body"> <span class="modal-close"> <!-- close btn --> </span> <div class="modal-content"> <div class="cb" id="cb"> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.7.0.min.js"></script> <script> var close = $('.modal-close'); var container = $('.modal-container'); var cbname = []; var cbtxt = $('[name="select"]').val(); $("#btn").click(function () { container.addClass('active'); close.on('click', function () { container.removeClass('active'); }); container.on('click', function () { container.removeClass('active'); }); }); <!-- ****************多分問題点ここ************* --> $("#btn").click(function () { if ($('[name="select"]').prop("checked")) { $("#cb").text(cbtxt); } else { $("#cb").text("選択してください"); } }); </script>
/* css */ span.modal-close { position: absolute; transform: translate(50%, -50%); top: 0; right: 0; cursor: pointer;} span.modal-close:before{ content: "×"; color:#000; background:#fff; width: 30px; height: 30px; display: block; } .modal-container { position: fixed; top:0; left: 0; width: 100%; height: 100%; text-align: center; background: rgba(0, 0, 0, 50%); padding: 40px 20px; overflow: auto; opacity: 0; visibility: hidden; transition: .3s; box-sizing: border-box; z-index: 999999; } .modal-container.active { opacity: 1; visibility: visible; } .modal-body { position: relative; display: inline-block; vertical-align: middle; max-width: 700px; width: 90%; top:30%; left: 0; } .modal-content { background: #fff; text-align: left; padding: 30px; overflow: auto; max-height: 700px; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

jQueryが前提であればサポート終了してますがuiを利用するのが早いです

javascript

1<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script> 2<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css" /> 3<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script> 4<script> 5$(function(){ 6 $('#cb').hide(); 7 $('#btn').on('click',function(){ 8 if($('.cb01:checked').length==0){ 9 $('#cb').dialog({ 10 modal:true, 11 buttons:{ 12 "ok":function(){ 13 $(this).dialog("close"); 14 }, 15 } 16 }); 17 } 18 }); 19}); 20</script> 21<div class="btn"> 22<button type="button" id="btn" class="btn01" name="check-btn">押す</button> 23</div> 24<ul> 25<li> 26<span> 27<input type="checkbox" class="cb01" id="pl01" name="select" value="あ"> 28<label for="pl01" class="select">a</label></span> 29</li> 30<li> 31<span> 32<input type="checkbox" class="cb01" id="pl02" name="select" value="い"> 33<label for="pl02" class="select">b</label></span> 34</li> 35<li> 36<span> 37 <input type="checkbox" class="cb01" id="pl03" name="select" value="う"> 38<label for="pl03" class="select">c</label></span> 39</li> 40</ul> 41<div class="modal-container"> 42<div class="modal-body"> 43<span class="modal-close"> 44<!-- close btn --> 45</span> 46<div class="modal-content"> 47<div class="cb" id="cb"> 48選択してください 49</div> 50</div> 51</div> 52</div>

素のjsでやるならdialogタグをつかってください

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 btn.addEventListener('click',()=>{ 4 if(!document.querySelector('.cb01:checked')){ 5 cb.showModal(); 6 } 7 }); 8 document.querySelector('#cb .ok').addEventListener('click',({target})=>{ 9 cb.close(); 10 }); 11}); 12</script> 13<dialog class="cb" id="cb"> 14選択してください 15<hr> 16<input type="button" value="OK" class="ok"> 17</dialog> 18 19<div class="btn"> 20<button type="button" id="btn" class="btn01" name="check-btn">押す</button> 21</div> 22<ul> 23<li> 24<span> 25<input type="checkbox" class="cb01" id="pl01" name="select" value="あ"> 26<label for="pl01" class="select">a</label></span> 27</li> 28<li> 29<span> 30<input type="checkbox" class="cb01" id="pl02" name="select" value="い"> 31<label for="pl02" class="select">b</label></span> 32</li> 33<li> 34<span> 35 <input type="checkbox" class="cb01" id="pl03" name="select" value="う"> 36<label for="pl03" class="select">c</label></span> 37</li> 38</ul>

投稿2023/09/12 02:40

編集2023/09/12 02:46
yambejp

総合スコア117780

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こうですか?

js

1$("#btn").click(function () { 2 if ($('[name="select"]:checked').length) { 3 $("#cb").text($.map($('[name="select"]:checked'), el => $(el).val()));

参考:

Get the current value of the first element in the set of matched elements.
.val() | jQuery API Documentation

投稿2023/09/12 02:15

編集2023/09/12 02:16
Lhankor_Mhy

総合スコア37460

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問