サポート » プラグイン » Contact Form 7 エラーを解消したい

  • お世話になります。
    Contact Form 7 のアップデートを行ったところエラーが発生しました。
    解決策をご教示いただきたいです。

    【希望する状態】
    プルダウンメニューで日時の選択ができる。

    【現状】
    プルダウンのメニューを選択すると「未定義の値がこの項目を通じて送信されました。」と表示されエラーになる。

    【仕様について】
    1,投稿ページに日時を出力するカスタムフィールドを実装しています。
    2,アーカイブページに1が表示されるようになっており、各投稿用に用意されたボタンからフォームに遷移します。
    3,フォームには1で出力したカスタムフィールドの値を表示するようになっています。
    4,フォームのプルダウンの値を空に設定し、JavaScriptで1で出力したカスタムフィールドの値を代入するようにしています。

    ※2のボタンは条件分岐が設定され、各カテゴリごとで違う遷移先のボタンを表示します。
    ※ボタンの遷移先も条件分岐しており、内容の違うものが表示されますが、大元のContactFormは1つです。

    【起きたエラー】
    プラグインのバージョンを4.8.7から4.9.2にあげたところ、プルダウンメニューを選択したときに「未定義の値がこの項目を通じて送信されました。」が表示されるようになりました。

    【試みたこと】
    一旦バージョンダウンで対応しています。

    以上になります。
    よろしくお願いいたします。

    • このトピックは3週、 4日前にTakayuki Miyoshiが編集しました。理由: リンクを追加

    ヘルプの必要なページ: [リンクを見るにはログイン]

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター Takayuki Miyoshi

    (@takayukister)

    問題のサイトはどこで見られますか? URL を教えてください。

    トピック投稿者 doifg

    (@doifg)

    お返事いただきありがとうございます。
    製作者様からお返事いただけると思っておらず、感動しております。

    URLは下記になります。
    [モデレーター編集: リンク URL を「ヘルプの必要なページ」に移動]

    2,アーカイブページに1が表示されるようになっており、各投稿用に用意されたボタンからフォームに遷移します。
    上記の箇所は「静岡県内での説明会・個別相談会」から下のお仕事説明会部分になります。

    フォームに遷移すると下記のように表示されます。
    (サイトドメイン)/recruit/session1-ashitaka/?referer=ashitaka&post_id=2962

    バリデーションルールが適応される箇所は、「参加日時」の部分となります。
    現在はバージョンを4.8.7に下げているので、バリデーションルールは適応されておりません。

    【検証したこと】
    1,バリデーションルールが適応されたプルダウンメニューを用意(ショートコードに値未入力)
    2,新たに正しいプルダウンメニューを用意(ショートコードに値入力済み)
    3,1は現在と同じ方法でメニューを選択(バリデーションルールが適応される)
    4,2は通常通り選択可能(通常通りバリデーションルールが適応されない)

    【結論】
    上記検証により、ショートコード内に値がない場合、バリデーションルールが機能することが分かりました。

    【該当のJavaScriptコード】
    // ul要素からli要素のテキストを取得
    const ul = document.getElementById(“formDay”);
    const liList = ul.getElementsByTagName(“li”); const dateSelect = document.getElementById(“selectDay”);
    // 各li要素のテキストを基に新しいoption要素を作成し、select要素に追加
    for (let i = 0; i < liList.length; i++) {
    const liText = liList[i].textContent.trim();
    const option = document.createElement(“option”);
    option.value = liText; option.textContent = liText; dateSelect.appendChild(option); }

    4.8.7の時は上記のJavaScriptを使用してもバリデーションルールは適応されませんでした。

    【今後について知りたいこと】
    バリデーションルールの条件緩和を緩和されるご予定はありますか?

    以上になります。
    引き続きよろしくお願いいたします。

    モデレーター Takayuki Miyoshi

    (@takayukister)

    バリデーションルールの条件緩和を緩和されるご予定はありますか?

    無いですね。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。