MW WP Formでセレクトボックスの選択した値によってテキストボックスを表示させたい

実現したいこと

MW WP Formプラグインについて質問があります。

セレクトボックスの値がいくつかあり、その中の値で「その他」を選んだ時に、非表示となっていたテキストボックスを表示させたいですが、どのようにやるのかがわかりません。

イメージ説明

前提

■選択肢1の値は特定カテゴリーの記事タイトルを表示するよう「mwform_choices_mw-wp-form-27」を使用ています。
■選択肢1の値で「その他」を選択したら「選択肢1その他」のテキストボックスを必須にしています。
■hidden_etcはCSSで.hidden_etc{display:none;}と非表示にしています。

該当のソースコード

HTML

1<table class="s_form"> 2<tbody> 3<tr> 4<th>選択肢1<span class="label label-danger">必須</span></th> 5<td> 6[mwform_select name="選択肢1" class="form-control" children=":▼選択してください" post_raw="true"] 7 8//↓ここから非表示:その他を選択したら表示する 9<div class="hidden_etc"> 10<span>※「その他」を選択した場合は詳細を入力してください</span><br> 11[mwform_text name="選択肢1のその他" class="form-control"]</div> 12//↑ここまで非表示 13 14</td> 15</tr> 16</tbody> 17</table>

PHP

1//選択肢1の値を表示2function add_select_item_sentaku( $children, $atts ) {3if ( $atts['name'] == '選択肢1' ) {4$arg = array(5'posts_per_page' => -1,6'orderby' => 'slug',7'order' => 'ASC',8'post_type' => 'sentaku1'9);10$cat_posts = get_posts( $arg );11foreach( $cat_posts as $cat_post ){12$children[$cat_post->post_title] = $cat_post->post_title;13}14}15return $children;16}17add_filter( 'mwform_choices_mw-wp-form-27', 'add_select_item_sentaku', 10, 2 );18 19//その他を選択したら「選択肢1のその他」を必須にする20function my_validation_rule1( $Validation, $data ) {21if ( $data['選択肢1'] == 'その他' ) {22$Validation->set_rule( '選択肢1のその他', 'noEmpty', array(23'message' => 'その他を選択したの場合は必ず入力してください。'24) );25}26return $Validation;27}28add_filter( 'mwform_validation_mw-wp-form-27', 'my_validation_rule1', 10, 2 );

補足情報

ラジオボタンならテキストボックス表示・非表示のやり方があるようなのですが、今回は値が20件もあるのでセレクトボックスでできるようにしたいです。
参考URL:【MW WP Form】ラジオボタンの選択項目によって分岐させたい!

WordPress 6.2.2
PHP 8.0.25
MW WP Form v.4.4.5

もし可能でしたら教えてください。
どうぞよろしくお願いいたします。

コメントを投稿

0 コメント