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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

jQuery

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

Q&A

解決済

2回答

2274閲覧

checkboxでradioボタンのような動きを実装したい

xminimx

総合スコア53

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

jQuery

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

0グッド

0クリップ

投稿2020/10/28 05:53

php

1<ul class="search_modal_box_select_list"> 2 <li> 3  <label class="" for="hogea"> 4   <input type="checkbox" class="ch me" name="hoge_move[]" value="hogea"><span></span>ほげA 5  </label> 6 </li> 7 <li> 8  <label class="" for="hogeb"> 9   <input type="checkbox" class="ch me" name="hoge_move[]" value="hogeb"><span></span>ほげB 10  </label> 11 </li> 12 <li> 13  <label class="" for="hogec"> 14   <input type="checkbox" class="ch me" name="hoge_move[]" value="hogec"><span></span>ほげC 15  </label> 16 </li> 17</ul>

上記の3つのチェックボックスについて、ラジオボタンのように一つしか選択できないようにしたいと思い
以下のようなjqueryを書きました。

jquery

1$(".ch.me").on("click", function(){ 2 $('.ch.me').prop('checked', false); 3 $(this).prop('checked', true); 4 if ($(this).prop('checked')) {//うまく動かない 5 $(this).prop('checked', false); 6 } 7});

問題は4行目からのifです。
現状、他の.ch.meをクリックしないと選択を解除できないので
既にチェックされている.ch.meをもう一度クリックするとチェックが外れるようにif文を書きました。
が、ループに入ってしまったようでうまく動きません。
非常に初歩的な質問かと思いますがどのようにすれば選択を解除できるか、ご助言いただけないでしょうか。

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

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

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

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

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

m.ts10806

2020/10/28 06:52

PHP関係ないのでは
m.ts10806

2020/10/28 06:52

ただ、チェックボックスのメリットないので、ラジオボタンで良いのでは。
xminimx

2020/10/28 08:54

phpは関係なかったですね、失礼しました。該当部を記述しているファイルがphpだったのでタグに入れていました。 最初ラジオボタンで実装しようとしたのですが、別の問題点が発生したのでチェックボックス を使った次第です。
guest

回答2

0

ベストアンサー

ググったらすぐに結構見つかりますよ。
こちらのページがシンプルでわかりやすいかと思います。
チェックボックスをラジオボタンのような動きにする

投稿2020/10/28 06:40

編集2020/10/28 06:44
mari.rinn

総合スコア296

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

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

xminimx

2020/10/28 08:55 編集

ありがとうございます、そちらのページにもたどり着いていたのですが一番下まで読んでいませんでした…! ご提示いただいたページを参考にして実装できました。
guest

0

ラジオボタンはform単位なのでチェックボタンでやるときも
干渉しないようにグルーピングに注意が必要です

投稿2020/10/29 02:10

編集2020/10/29 02:11
yambejp

総合スコア116724

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

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

yambejp

2020/10/29 02:10

<script> $(function(){ $(':checkbox').on('change',function(){ if($(this).closest('form').length>0){ var ch=$(this).closest('form').find(':checkbox[name='+$(this).attr('name')+']'); }else{ var ch=$(this).closest('body').find(':checkbox[name='+$(this).attr('name')+']').filter(function(){return $(this).closest('form').length==0;}); } ch.not(this).prop('checked',false); }); }); </script> <form> <label><input type="checkbox" name="a">a1</label> <label><input type="checkbox" name="a">a2</label> <label><input type="checkbox" name="a">a3</label><br> <label><input type="checkbox" name="b">b1</label> <label><input type="checkbox" name="b">b2</label> <label><input type="checkbox" name="b">b3</label><br> </form> <label><input type="checkbox" name="b">b1</label> <label><input type="checkbox" name="b">b2</label> <label><input type="checkbox" name="b">b3</label>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問