@22n (22n)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【MW WP Form】選択した値によって動的にセレクトボックスの値を生成

Q&A

Closed

解決したいこと

「MW WP Form」を使用して問い合わせフォームを作成中で、
選択した値によって動的にセレクトボックスの値を生成するような動きを実現したい。

実際にやりたいこと)
・セレクトボックスをふたつ設置
・ひとつ目のセレクトボックスで曜日を選択
・ひとつ目のセレクトボックスで選択した曜日によって、ふたつ目のセレクトボックスの時間表示を変える。
①平日(火曜~金曜)を選択した場合は「10:00~12:00,12:00~19:00,19:00~20:00」から選択できるように
②上記以外(土曜)を選択した場合は「9:00~12:00,13:00~14:00」から選択できるように

[mwform_select name="week-1" children=":選択してください,火曜日,水曜日,木曜日,金曜日,土曜日" post_raw="true"]
[mwform_select name="time-1" children=":選択してください" post_raw="true"]

自分で試したこと

フィルターフック等参照してみましたが解決方法が分かりませんでした。
https://plugins.2inc.org/mw-wp-form/manual/filter-hook/

0 likes

1Answer

自己解決しました。

        <tr>
            <th>ご希望曜日・お時間帯</th>
            <td>
                [mwform_select name="week-1" children=":選択してください,火曜日,水曜日,木曜日,金曜日,土曜日" post_raw="true" id="cate_select"]
                <div id="category_a" class="form-child">
                    [mwform_select name="time-1-2" children=":選択してください,9::00~11::30,11::30~13::00,13::00~14::30,14::30~16::00" post_raw="true"]
                </div>
                <div id="category_b" class="form-child"> 
                    [mwform_select name="time-1-1" children=":選択してください,14::30~16::00,16::00~17::30,17::30~19::00,19::00~20::30" post_raw="true"]
                </div>
            </td>
        </tr>
        <tr>
$(function(){
    $(".form-child").css({"display":"none"});

    $("#cate_select").on("change", function() {
        var val = $(this).val();

        if (val === '土曜日'){
            $(".form-child").css({"display":"none"});
            $("#category_a").fadeIn();
    
        } else {
            $(".form-child").css({"display":"none"});
            $("#category_b").fadeIn();

        }
    });

    var selectedA = $('#cate_select option[value="土曜日"]').prop('selected');
    var inputVal = $('#cate_select').find('input[type="hidden"]').val();

    if(selectedA || inputVal === '土曜日'){
        $("#category_a").show();
    } else {
        $("#category_b").show();
    }
});
0Like

Your answer might help someone💌