
No.3ベストアンサー
- 回答日時:
No1です。
>jsでその書き方がわからずご教授いただければ、
書き方は考え方によって様々ですし、文書構成も何もない状態で記述できるものでもありません。
汎用化したスクリプトを作ることも可能ですが、そちらの方が固定的なものより遥かに難しくなります。
ですので、例示したところでそれが唯一の記述法でもありませんし、応用できるものとも思えません。
>質問項目ごとにidかclassを付けて、caseで判断させればいいのかなというところまでは~
同じ様な処理をするのなら、個々にIDなどを付けて個別に処理するような方式では効率が悪と考えられます。
多少なりとも一般化して、文書構造を利用して処理できるようにしておいた方が宜しいように感じます。
などと言っていたのでは、ミもフタも無いので・・・
以下に例示はしておきますけれど、多分、使い物にはならないだろうと思います。
以下は、各フィールド毎に、何番目の選択肢が選択されているかを表示するだけのものです。
(右上に選択番号が表示されます)
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
fieldset { border-radius: 6px; margin-bottom: 1.2em; position: relative; }
legend { padding: 0 .6em; }
legend span { position: absolute; right: 1.6em;
background-color: white; padding: 0 0.6em; }
label + label { margin-left: 1.2em; }
</style>
</head>
<body>
<div id="wrap">
<fieldset>
<legend>選択項目 1<span>選択:<b> </b></span></legend>
<label><input type="radio" name="C1">choice 1-1</label>
<label><input type="radio" name="C1">choice 1-2</label>
</fieldset>
<fieldset>
<legend>選択項目 2<span>選択:<b> </b></span></legend>
<label><input type="radio" name="C2">choice 2-1</label>
<label><input type="radio" name="C2">choice 2-2</label>
<label><input type="radio" name="C2">choice 2-3</label>
</fieldset>
<fieldset>
<legend>選択項目 3<span>選択:<b> </b></span></legend>
<label><input type="radio" name="C3">choice 3-1</label>
<label><input type="radio" name="C3">choice 3-2</label>
<label><input type="radio" name="C3">choice 3-3</label>
<label><input type="radio" name="C3">choice 3-4</label>
</fieldset>
</div>
<script>
document.getElementById('wrap').addEventListener('change', e => {
const t = e.target, f = t.closest('fieldset');
if(t.nodeName != 'INPUT' || t.type != 'radio') return;
const n =[... f.querySelectorAll('input')].indexOf(t);
f.querySelector('legend b').textContent = n + 1;
});
</script>
</body>
</html>
fujillin様
jsなどは、仰る通り様々な書き方があるとは存じますが、何から形にしていいかもこんがらがってしまい、他の方の似たような質問を漁り続けて未だ悩んでおりました。
そんな時にご丁寧にご教授いただき大変嬉しいです!本当にありがとうございます!
本来、ある程度カタチにした状態で質問できればと思うのですが、申し訳ございません。
今手元にPCがないので、明日やってみます!
貴重なお時間を割いていただきありがとうございました。いただいた内容を勉強させていただきます。
No.5
- 回答日時:
YES/NO チャートの様に質問をするウェブページの簡単な実装例
<form onsubmit="handleNext(event)">
<h2 id=qttl></h2> <ul id=qopt></ul> <button type=submit>次へ</button>
</form>
<script>
const QUESTIONS = { 0:["入浴するか","1:応","2:やだ"], 1:["サウナは好きか","3:応","2:やだ","4:ちょっとなら"], 2:"さようなら", 3:"△△湯", 4:"○○温泉" };
changePage(0);
/// 指定の質問でページを書き換える
function changePage(questionNo) {
var Q = s => document.querySelector(s);
var q = QUESTIONS[questionNo];
if (typeof q == "string") {
Q("#qttl").textContent = q;
Q("#qopt").innerHTML = "";
} else if (q) {
const LI = '<li><label><input type=radio name=q value="$1">$2</label></li>';
Q("#qttl").textContent = q[0];
Q("#qopt").innerHTML = q.slice(1).map(o => o.replace(/^(\w):(.+)/, LI)).join("\n");
}
}
/// 次へボタンを押した
function handleNext(event) {
event.preventDefault();
var no = 0, form = event.target, e = form.elements["q"];
if (e && !e.value) return;
if (e) no = e.value;
changePage(no);
}
</script>
余談ではありますが、
ウェブページを扱いたいなら JS と一緒に API も習いましょう。
https://developer.mozilla.org/ja/docs/Web/API/Do …
例) 実装例にてページを書き換える為に使う API
https://developer.mozilla.org/ja/docs/Web/API/Do …
https://developer.mozilla.org/ja/docs/Web/API/No …
https://developer.mozilla.org/ja/docs/Web/API/El …
例) 実装例にて HTML フォームを次へ処理に転用するために使う API
https://developer.mozilla.org/ja/docs/Web/API/Ev …
https://developer.mozilla.org/ja/docs/Web/API/HT …
https://developer.mozilla.org/en-US/docs/Web/API …
Ogre7077様
実装例と、たくさんの参考ページまでご教授いただきありがとうございます!
質問がおおまかで簡潔にできておらず申し訳ございません。
いただいたページからもっと勉強して、回答いただける方にもちゃんと伝わる質問ができるよう頑張ります。
ありがとうございました。
一度また質問の仕方を考えて出直します。
ありがとうございました。
No.4
- 回答日時:
そもそもyes no チャートって何だろ?
定義が曖昧なまま仕様を進める、って事が既に危険な気がしてるんだけど。
一般的に「yes no チャート」、って単語で想像するのって後述の写真のようなブツにならない?
つまり、Q1も2も3も「全部二択じゃなきゃいけない」筈なんだけど、質問文は途中から三択になってる。
想定してるモノがそもそも「伝わってない」、あるいは「一般的には伝わりづらい」って事にならんか?
それから、
> 選択ごとの分岐の仕方がわかりません。
とは言うけど、題意的な話で言うと、「Yes No チャート」で検索するよか、「木構造」で検索すべきなんじゃないか。
> jsの初心者すぎて申し訳ございません。
っつーのは関係ない。言っちゃえばjsそのものたぁあんま関係ない話だ。
木構造(データ構造):
https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B …
プログラミングがどーの、って言うよりもデータ設計の話だと思う。
一般的にはJavaScriptで言うMapを使ってどう「データをデザインすっか」の話になるだろうし、
Map:
https://developer.mozilla.org/ja/docs/Web/JavaSc …
あるいは、本当にデータ設計・・・僕自身はそれほどJavaScriptには明るくないんだけど、JSONを使ってどうデータを書き込むのか、って程度の話に過ぎないような気がする。
JSON:
https://products.sint.co.jp/topsic/blog/json

条件分岐の作り方の質問だったのですが、、、
また改めて質問し直すことに致しました。
見ていただき、お時間を割いてくださり感謝いたします。また何かの際にはよろしくお願い致します。
No.1
- 回答日時:
こんにちは
javascriptに限った話ではありませんけれど、例えば3項目ある場合として
◇一択しかできない場合
1~3のどの項目が選択されているかを調べれば、例えば1~3通りの分岐が可能です。
◇複数選択可能な場合
値は、yes、noの2値なので、
[no,no,no]、[no,no,yes]、[no,yes,yes]・・・・
のように合計8通りの選択状態が考えられます。
全部を分岐したいのなら、まず、この1~8通りに分類すれば宜しいかと。
見ていただきありがとうございますm(_ _)m
せっかく助言くださったところ申し訳ございませんが、jsでその書き方がわからずご教授いただければ、よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript jquery 診断コンテンツにチェックボックスを付けたいです 3 2023/01/19 18:31
- JavaScript プルダウンから1個選んで、豆知識を出すプログラム。 2 2022/06/21 17:27
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- 占い これは、誰のせいにしていますか? 例えば、今日、ジョギングをするか、しないか、という選択肢を自分の発 5 2022/05/21 05:54
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Excel(エクセル) Excel アクティブセルのみ条件付き書式の色を他の色にしたい。 4 2022/06/11 22:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptの条件分岐について(...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
Excel VBA メール作成について ...
-
ビットスワップとバイトスワッ...
-
この関数はどのプログラミング...
-
ホームページビルダーで行間を...
-
Excel 1セル当りの文字数が2...
-
stable diffusionのエラー
-
c言語の多次元配列で1から100ま...
-
エクセルで2byte文字を含むセル...
-
最大長を用意せずにバイナリデ...
-
.netで、ibm漢字で書かれたテキ...
-
VB6とSQL Serverの桁の扱い方に...
-
ListView重複データ削除
-
Line Inputにて改行があっても...
-
より高速な画像の表示法
-
ポインター引数の関数でコンパ...
-
htmlソース編集で、各タグを何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語でwin32apiを使ってnotepa...
-
JavaScriptの条件分岐について(...
-
デバイスコンテキストに書いた...
-
DOSのdirコマンドで思うように...
-
segmentation fault
-
PHPでのIP制限の方法
-
エラー「書き込み中にアクセス...
-
python についての質問です
-
VBAの計算について
-
ショッピングカートで代引き手...
-
細線化のプログラム
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
DataGridViewの特定列に入力さ...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
Excel 1セル当りの文字数が2...
-
Excel VBA メール作成について ...
-
バイト列とバイナリ列の違いが...
おすすめ情報
質問項目ごとにidかclassを付けて、caseで判断させればいいのかなというところまでは認識できたのですが、その書き方もわかりません。。。よろしくお願い致します。