前提・実現したいこと
JavaScriptでTwitter管理システムを作っています。
フロントからの入力フォームを実装中に以下の問題が発生しました。
発生している問題・エラーメッセージ
index.js(一部抜粋)の以下の部分で、ユーザーによるラジオボタンの操作に対応させてラジオボタンのvalueを取得したいが、返り値の値がundefinedから、変更されない。
js
1// フォームの種類を変更する処理 2const formType = changeForm(); 3console.log(formType);
該当のソースコード
index.js
js
1"use script"; 2 3import monitorLoginStatus from "../auth/monitorLoginStatus.js"; 4import changeForm from "./changeForm.js"; 5import createMethod from "./createMethod.js"; 6 7monitorLoginStatus() 8 .then(({ loginStatus, uid }) => { 9 if (loginStatus) { 10 // フォームの種類を変更する処理 11 const formType = changeForm(); 12 console.log(formType); 13 14 // firestoreへの書き込み処理 15 createMethod(uid, formType); 16 } 17 }) 18 .catch(() => { 19 alert( 20 "ログイン状態が確認できません。\n再度ログインしてからご利用ください。" 21 ); 22 location.replace("../../index.html"); 23 });
changeForm.js
js
1"use strict"; 2 3const changeForm = () => { 4 const input_genders = document.querySelectorAll("input[name=processingType]"); 5 6 for (const element of input_genders) { 7 element.addEventListener("change", () => { 8 const input_gender = document.querySelector( 9 "input[name=processingType]:checked" 10 ); 11 12 const formType = document.querySelectorAll(".form-type"); 13 14 for (const element of formType) { 15 element.classList.add("hidden"); 16 } 17 console.log(input_gender.value); 18 19 switch (input_gender.value) { 20 case "post": 21 const post = document.querySelectorAll(".post"); 22 for (const element of post) { 23 element.classList.remove("hidden"); 24 } 25 return input_gender.value; 26 case "favorite": 27 const favorite = document.querySelectorAll(".favorite"); 28 for (const element of favorite) { 29 element.classList.remove("hidden"); 30 } 31 return input_gender.value; 32 case "reply": 33 const reply = document.querySelectorAll(".reply"); 34 for (const element of reply) { 35 element.classList.remove("hidden"); 36 } 37 return input_gender.value; 38 } 39 }); 40 } 41}; 42 43export default changeForm; 44
補足情報(FW/ツールのバージョンなど)
javascript
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/02 06:37