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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

622閲覧

JavaScript: ラジオボタンの値取得について

Fukids34

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/08/29 05:08

前提・実現したいこと

私はチャットアプリに使うプロフィール編集画面を作っていて、その際にラジオボタンを用いて、「リーダー・副リーダー・メンバー・ゲスト」の中から選択したものの値を、更新ボタンを押した際にselectedPositionという変数に代入してから、下の処理でそのselectedPositionに代入された値をグローバル変数であるprofile_positionに代入したいと考えています。

もし何かアドバイスいただけるのなら、お願いしたいです。よろしくお願いします。

発生している問題・エラーメッセージ

下記にあるコードを実装したところ、以下のようなエラーがコンソール上で出ました。 本来なら、forEachでボタンがチェックされているか判定する際に、チェックされているボタンの値を取りたいのですが、何を選択しても'on'という値が返ってきます。 profile.js:17 一致 on profile.js:14 <input type=​"radio" name=​"positionChange"  value=​"sub_leader">​ profile.js:19 異なる profile.js:14 <input type=​"radio" name=​"positionChange"  value=​"member">​ profile.js:19 異なる profile.js:14 <input type=​"radio" name=​"positionChange"  value=​"guest">​ profile.js:19 異なる

該当のソースコード

html

1 <form id="Position_option"> 2 <input type="radio" name="positionChange" value = 'leader' >リーダー 3 <input type="radio" name="positionChange" value = 'sub_leader' >副リーダー 4 <input type="radio" name="positionChange" value = 'member' >メンバー 5 <input type="radio" name="positionChange" value = 'guest' >ゲスト 6 7 </form> 8 9 10 <button id="changeAll">更新</button>

javascript

1var profile_name; 2var profile_icon; 3var profile_intro; 4var profile_position; 5 6function profile() { 7 document.getElementById('changeAll').addEventListener('click', () => { 8 9 //ラジオボタンから役職の取得 10 var positions = document.getElementsByName('positionChange'); 11 var selectedPosition; 12 positions.forEach(position => { 13 console.log(position); 14 if (position.checked) { 15 selectedPosition = position.value; 16 console.log(`一致 ${selectedPosition}`); 17 } else { 18 console.log('異なる'); 19 } 20 }) 21 22 //プロフィール情報(グローバル変数)にインプットの内容を代入 23 profile_name = document.getElementById('nameChange').value; 24 profile_icon = document.getElementById('iconChange').value; 25 profile_intro = document.getElementById('introChange').value; 26 profile_position = selectedPosition; 27 28 //sessionStorageにプロフィール情報を格納 29 sessionStorage.setItem('pf_name',profile_name); 30 sessionStorage.setItem('pf_icon',profile_icon); 31 sessionStorage.setItem('pf_intro',profile_intro); 32 sessionStorage.setItem('pf_position',profile_position); 33 34 //プロフィール編集画面にアイコンの更新内容を反映 35 document.getElementById('icon_Changed').style.backgroundImage = `url(${profile_icon})`; 36 }) 37} 38profile();

試したこと

console.logを用いて不具合箇所の絞り込み
forEachの処理において全てのラジオボタンが適切に判定されているかの確認

補足情報(FW/ツールのバージョンなど)

VSCode1.48.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

全角スペースを半角にしましょう。

HTML

1<!-- ↓ 全角スペース --> 2<input type="radio" name="positionChange" value = 'leader' >リーダー

投稿2020/08/29 05:15

kei344

総合スコア69458

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

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

Fukids34

2020/08/29 05:46

解決できました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問