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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

checkbox

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

jQuery

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

Q&A

解決済

1回答

3185閲覧

送信フォームの確認画面で、選択肢による開閉部分がうまく反映されない

bigcat

総合スコア24

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

checkbox

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

jQuery

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

0グッド

3クリップ

投稿2019/01/01 16:13

前提・実現したいこと

ワードプレス上の送信フォーム(MW WP FORMプラグイン使用)で、チェックボックスのチェックによって、表示/非表示を切り替える形をjqueryを使って実装していますが、確認画面に進んだ際、チェックした内容が意図したように表示されません。
後述「発生している問題」のケース3で、チェック内容を確認画面でも反映させるための修正方法をご教示いただけましたらありがたいです。

送信フォームの構成

送信フォームは、2つのチェックボックスと表示/非表示切り替え内容(テキストとラジオボタン)で構成。
チェックボックスは、①(name="ivent" children="a")と
チェックボックス②(name="ivent" children="b,c,d")で、同一グループ、必須(a,b,c,dから最低1つチェックが必要)にしてあります。

発生している問題

●ケース1:項目aをチェックし、表示された内容のラジオボタンにもチェック→問題なし(確認画面に反映される)
●ケース2:項目aをチェックせず、項目b,c,dのどれかをチェック→問題なし(確認画面に反映される)
ケース3:項目aをチェックし、項目b,c,dのどれかをチェック→ 確認画面では、チェックボックスのチェック項目は反映されていますが、表示部分が非表示になり、ラジオボタンのチェック内容は反映されません。
1のケースでは、確認画面でも開いた部分は、開いたままになっています。
a以外のチェックにより、表示内容が非表示になっているようです。
条件分岐の方法が違っているのでしょうか。

該当のソースコード

単純化した内容のコードです。

html

1※複数選択可 2[mwform_checkbox name="ivent" children="a" vertically="true" id="checkbox"] 3<!--表示を切り替える内容--><div class="form_food" style="display: none;"> 希望の食べ物  4[mwform_radio name="food" id="food" children="ラーメン,ピザ,寿司"]</div> 5 [mwform_checkbox name="ivent" children="b,c,d" vertically="true"]

JQUERY

1jQuery(function($) { 2 var 3 checkbox = $("#checkbox-1"), 4 checkbox_change = function () { 5if (checkbox.length) { 6 if (checkbox.prop("checked")) { 7 $(".form_food").show(); 8 } else { 9 $(".form_food").hide(); 10 } 11} else { 12 // 確認画面用 13 if ($('input[value="a"]').length) { 14 $(".form_food").show(); 15 } else { 16 $(".form_food").hide(); 17 } 18} 19 }; 20 checkbox_change(); 21 checkbox.change(checkbox_change); 22});

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

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

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

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

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

m.ts10806

2019/01/02 04:40

ブラウザで「ソースを表示」したときにどのようなコードなっているか追記されたほうが再現確認しやすいので質問本文に追記いただけますか?
bigcat

2019/01/02 09:54

ご返信ありがとうございます。 せっかくアドバイスをいただいたのですが、解決できたので「自己解決方法」に記載させていただきます 。たいへん申し訳ございません、一度、解決できなかった別ルートから再度教えていただくことができ、入れ違いになってしまいました。
m.ts10806

2019/01/02 10:04

解決されたようで何よりですが、もしマルチポスト(複数サイトで同内容の質問を同時に)であればteratailでは非推奨なので今後はご注意ください(ヘルプ参照)
guest

回答1

0

自己解決

var ivents = $('input[name="ivent[data]"]').val().split(','); if ($.inArray('a', ivents) >= 0) {

投稿2019/01/02 09:56

bigcat

総合スコア24

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問