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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1172閲覧

ラジオボックスをクリックすると別のラジオボックスが反応してしまう。

momokoko

総合スコア38

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/01/25 06:44

編集2021/01/25 07:10

https://masa-enjoy.com/gas-createform

上記の記事を参考にアンケートフォームを作っています。

僕たちがするアンケート内容でラジオボックスが複数必要だったのでHTMLを要素を入れて、CSSを適宜追加しました。

エラー内容
① 転出の理由のうち「②進学」をクリックする
② 性別 Sexの「女性 female」が赤く表示されてしまう。

どのボタンを押しても上のラジオボックスが反応してしまいます。

やりたいことは転出の理由で選択されたラベルを黄色に変えたいです。

<!DOCTYPE html> <html> <head> <base target="_top"> <meta charset="utf-8"> <?!=include('form.css');?> <title>転出者・転入者に関するアンケート</title> </head> <body> <main> <div class="container"> <form id="form" action="" method="POST"> <h1>転出者・転入者に関するアンケート</h1> <h1>Questionnaire about moving out and in</h1> <h2>下記の項目にご回答下さい</h2> <!-- 支払い日付 <div class="block"> <label for="calendar" class="block-title">支払い年月</label> <input type="date" id="calendar"> </div> --> <div class="block"> <label class="block-title">性別 Sex </label> <div class="radio-wrapper"> <input type="radio" id="detail1" name="detail" class="radio-inline__input" checked> <label for="detail1" class="radio-inline__label">男性 male </label> <input type="radio" id="detail2" name="detail" class="radio-inline__input"> <label for="detail2" class="radio-inline__label">女性 female </label> <input type="radio" id="detail3" name="detail" class="radio-inline__input"> <label for="detail3" class="radio-inline__label" >回答しない N/A</label> </div> </div> <div class="radio-wrapper"> <input type="radio" id="detail10" name="detail" class="radio-inline__input2" checked> <label for="detail1" class="radio-inline__label2">①仕事(就職、転職、転勤)</label> <input type="radio" id="detail20" name="detail2" class="radio-inline__input2"> <label for="detail2" class="radio-inline__label2">②進学</label> <input type="radio" id="detail30" name="detail" class="radio-inline__input2"> <label for="detail3" class="radio-inline__label2">③結婚</label> </div> </div> <div class="block"> <label for="cost" class="block-title">転出入の理由(自由記述) Other reason for monving </label> <div class="cost-group"> <input type="text" name="cost" id="cost"><span></span> </div> </div> <!-- 申請内容 --> <div class="button-wrapper"> <span class="submit">送信(Send)</span> </div> </form> </div> <form id="mG61Hd" action="https://docs.google.com/forms/u/0/d/e/AKfycbwLvDFVgMuuWwr1EiAwAd_oDkVSnJFgsOA7dTEUuk08WKClWxr5NQrbYQ" method="POST"> <input type="hidden" id="calendar_year" name="entry.1029669143_year" value=""> <input type="hidden" id="calendar_month" name="entry.1029669143_month" value=""> <input type="hidden" id="calendar_day" name="entry.1029669143_day" value=""> <input type="hidden" id="detail_val" name="entry.自分のID" value="電気"> <input type="hidden" id="cost_val" name="entry.自分のID" value=""> </form> </main> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(function(){ //送信ボタンクリック時hedden項目のformをサブミットする $('.submit').on('click', function(e){ $('#mG61Hd').submit(); }); //「支払い年月」項目が変更されたときに対応するhidden項目の値も変更 $('#calendar').on('change', function(e){ if($(this).val() != ''){ $(this).css('color','#000'); let calendar = $(this).val(); let dt = calendar.split('-'); $('#calendar_year').val(dt[0]); $('#calendar_month').val(dt[1]); $('#calendar_day').val(dt[2]); } else { $(this).css('color','#999'); $('#calendar_year').val(''); $('#calendar_month').val(''); $('#calendar_day').val(''); } }); //「申請内容」項目が変更されたときに対応するhidden項目の値も変更 $('input[name="detail"]').on('change', function(e){ $('#detail_val').val($(this).next().text()); }); $('#cost').on('change', function(e){ $('#cost_val').val($(this).val()); }); }); </script> </body> </html>
<style> * { font-family: 'Montserrat', Arial, Helvetica, sans-serif; } main { width: 100vw; margin: auto; color: #fff; } .container { min-height: 120px; background-color: #f7f7f7; background-image: url("https://www.city.makinohara.shizuoka.jp/uploaded/life/30725_30745_img.jpg"); max-width: 100%; height:auto; background-position:center top; background-color: green; background-size: cover; background-repeat: no-repeat; text-align: center; } h1 { position: relative; display: inline-block; padding:50px 55px; font-size: 50px; } h1:before, h1:after { content: ''; position: absolute; top: 45%; display: inline-block; width: 45px; height: 2px; border-top: solid 1px #fff; border-bottom: solid 1px #fff; } h1:before { left:0; } h1:after { right: 0; } .block { height: 200px; margin: 50px 100px 50px 100px; display: flex; background: rgb(30,30,30,0.7); width: 80%; flex-direction: column; text-align: left; } .block { height: 200px; margin: 50px 100px 50px 100px; display: flex; background: rgb(30,30,30,0.7); width: 80%; flex-direction: column; text-align: left; } .block-title { font-size: 26px; font-weight: bolder; margin: 20px; border-bottom: 1px solid #eee; } .block label { height: 30px; } .detail_checks input { margin: 10px; } input { font-size: 20px;; margin: 25px 20px 20px 20px; margin-top: } .cost-group{ display:flex; align-items: flex-end; } .cost-group span{ font-size: 20px; margin: 25px 20px 20px 0; font-weight: bolder; } input[type="number"] { height:30px; width: 150px; } input[type="date"] { height: 40px; width: 200px; border-radius: 10px; color: #999; } .radio-wrapper { display:flex; } .radio-inline__input { clip: rect(1px, 1px, 1px, 1px); position: absolute !important; } // 追加 -------------------------------------------------------------- .radio-inline__input2 { clip: rect(1px, 1px, 1px, 1px); position: absolute !important; } // 追加 ここまで -------------------------------------------------------------- .radio-inline__label { display: inline-block; padding: 10px 50px; margin: 10px; border-radius: 3px; transition: all .2s; background: blue; color: #444; font-weight: bolder; cursor:pointer; font-size: 20px; } .radio-inline__input:checked + .radio-inline__label { background: red; color: #fff; text-shadow: 0 0 1px rgba(0,0,0,.7); } // 追加 ここから ----------------------------------------------------------------------- .radio-inline__label2 { display: inline-block; padding: 10px 50px; margin: 20px 10px 10px 10px; border-radius: 3px; transition: all .2s; background: black; color: #444; font-weight: bolder; cursor:pointer; font-size: 20px; } .radio-inline__input2:checked + .radio-inline__label2 { background: yellow; color: #fff; text-shadow: 0 0 1px rgba(0,0,0,.7); } // 追加 ここまで ----------------------------------------------------------------------- .submit { width: 100%; background:#673ab7; border-radius:5px; border:0; cursor:pointer; color:#fff; font-size:24px; padding:10px 100px; transition: all 0.3s; margin-top:-4px; font-weight:700; box-sizing:border-box; } .submit:hover { color: #fff; background: #884EF4; } .button-wrapper { width: 80%; text-align: left; margin: 0px auto; display: block; text-align: center; padding-bottom: 30px; } .error-message { color: #ed4055; padding: 5px; font-size: 20px; } .cost-error,.date-error { display:none; } label.block-title { white-space: pre-line; } </style>

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

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

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

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

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

guest

回答3

0

自己解決

適当にforをいじっていたら解決しました。。
なぜこうなかった整理して皆様にお伝えするレベルまでまとまれば記述しようと思います。

投稿2021/01/25 07:53

momokoko

総合スコア38

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

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

0

ここで指定している名前のせいですね。
このコードで反応するHTMLは性別 Sex以外にもありますよね。
それに注意すれば解決できるかと思います。

js

1 //「申請内容」項目が変更されたときに対応するhidden項目の値も変更 2 $('input[name="detail"]').on('change', function(e){ 3 $('#detail_val').val($(this).next().text()); 4 });

投稿2021/01/25 07:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

momokoko

2021/01/25 07:20

ありがとうございます。 とりあえずコメントアウトにしてみたんですが、同様のエラーが出てしまいました。
guest

0

radioのnameの付け方によるグルーピングがまずおかしいです
またlabelのforの指定もおかしいです
全体的に何をやりたいか伝わってきません。
もう少し仕様を固めて言葉で説明して下さい

投稿2021/01/25 07:00

yambejp

総合スコア116724

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

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

momokoko

2021/01/25 07:11

ありがとうございます。 取り急ぎ質問を修正致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問