サポート » プラグイン » プラグイン「MW WP Form」でエラーメッセージに共通テキストを追加したい

  • 解決済 tpnagahashi

    (@tpnagahashi)


    はじめて投稿いたします。
    MW WP Formを利用してメールフォームを作成しています。

    各質問に対して「この項目は必須項目です」というエラー設定はできたのですが、
    各質問のエラーメッセージの前に、
    「未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。」
    という共通エラー文を表示させる方法が分かりません。

    希望としましては

    未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。
    問1:必須項目です。
    問2:必須項目です。

    こういう状態で表示されてほしいです。

    プラグインサイトのヘルプやフォーラムを確認しましたが、同じような回答がなかったので、
    こちらに質問させていただきました。

    何卒よろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 「この項目は必須項目です」というエラーはデフォルトでは無いようですが、独自で設定されたんでしょうか?
    あと、文字だけでは分かりにくいので実際の画面のスクリーンショットを撮るなどして、そこへどのように表示したいのか文言を書き込んで提示した方がイメージが簡単に伝わると思います。

    manboさま
    ご返信頂きありがとうございます。

    おっしゃる通り、MW WP Formで作ったフォームにバリデーションルールを追加、「必須項目」にチェックをいれました。
    また、fanctions.phpにフィルターフックとして、
    「mwform_validation_mw-wp-form-xxx」を追記して、個別の質問に対するエラーメッセージを設定しました。

    fanctions.php

    function my_validation_rule( $Validation, $data, $Data ) {
        $Validation->set_rule( 'q1', 'required', array( 'message' => '問1:必須項目です。' ) );
        $Validation->set_rule( 'q1-2', 'noEmpty', array( 'message' => '問1-2:必須項目です。' ) );
        return $Validation;
    }
    add_filter( 'mwform_validation_mw-wp-form-2992', 'my_validation_rule', 10, 3 );

    このルールに追記できればとても有難いのですが、可能かどうかもわかりません。
    画面は公開前のものなので、難しいです。すみません。

    伝わりにくい内容で申し訳ないのですが、ご教示いただけると助かります。
    どうぞよろしくお願いします。

    ×fanctions.php
    〇functions.php

    問1:必須項目です。
    問2:必須項目です。

    これは出来たということでしょうか?

    「未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。」

    これをどこに表示するのかということを尋ねただけで実際の本当の画面でなくとも、適当なフォームの形を作ってそこへ書き込んでもらった方が伝わりやすいという意味なんですが?

    とりあえずフォームの上とか下とか一か所に表示という考え?
    もしそうならmwform_post_content_mw-wp-form-xxxを使えばフォームの前後に任意の情報を出力できるようですし、それよりも更に上か下だとthe_contentで出来ると思います。


    フォーム下部に出す場合は$text.$contentを入れ替える。

    function my_mwform_post_content( $content, $Data ) {
    
    $text = '未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。';
    
    return $text.$content;
    }
    add_filter( 'mwform_post_content_mw-wp-form-2992', 'my_mwform_post_content', 10, 2 );

    多分、これだと表示されたままになると思うので、入力エラーがある時だけ文言を出力するようにしたら良いと思います。

    • この返信は2 ヶ月、 2 週間前に  manbo さんが編集しました。

    manboさま
    色々ご指摘ありがとうございます。

    >これをどこに表示するのかということを尋ねただけで実際の本当の画面でなくとも、適当なフォームの形を作ってそこへ書き込んでもらった方が伝わりやすいという意味なんですが?

    理解不足ですみません。
    改めて、希望するフォームの形をかいてみました。

    <form>
    <p>未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。</p>
    <p>[mwform_error keys="q1"]</p>
    <p>[mwform_error keys="q2"]</p>
    <p>問1の質問</p>
    [mwform_textarea name="q1" cols="101" rows="1" show_error="false"]
    <p>問2の質問</p>
    [mwform_textarea name="q2" cols="101" rows="1" show_error="false"]
    <li>[mwform_submitButton name="mwform_submitButton-xxx" submit_value="Submit"]</li>
    </form>

    >とりあえずフォームの上とか下とか一か所に表示という考え?
    というよりかはフォームの中、エラーのすぐ上に表示したいです。

    manboさんの提示していただいた
    「mwform_post_content_mw-wp-form-xxx」を使うやりかたは、

    <p>未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。</p>
    <form>
    <p>[mwform_error keys="q1"]</p>
    </form>

    となるということでしょうか?

    また、
    >多分、これだと表示されたままになると思うので、入力エラーがある時だけ文言を出力するようにしたら良いと思います。

    ということは別の仕掛け(たとえばJavaScript)を入れる必要があるということでしょうか?

    重ねての質問でご迷惑をおかけしますが、
    どうぞよろしくおねがいします。

    試してみたら分かると思いますが$contentはフォームなのでフォームの中の最上部または最下部に追加される形になるので、したがって$text.$contentだと<form>の直後、$content.$textだと</form>の直前だと思います。
    文言を表示、非表示にするにはJavaScriptが手っ取り早いかもしれません。
    もしくは

    問1:必須項目です


    などの文言を出す処理に引っかけて出力できた方がスマートな気もします。

    tpnagahashiさん、こんにちは。

    入力フォームの上にエラーメッセージを表示させる方法を下記サイトにまとめてみましたので一度試して頂けますか。

    https://webcre-archive.com/2018/02/07/mw-wp-form-error-message/

    manboさま
    ryu263さま

    具体的なアドバイスありがとうございました!
    お蔭で思っていた形でのエラー表記ができました。

    検討した結果、Jsファイルに

    // MW WP Form エラーメッセージの表示
    jQuery(function() {
    	if( $( '.mw_wp_form .error' ).length ) {
    		$( '.mw_wp_form' ).addClass( 'mw_wp_form_error' );
    	}
    });

    とし、
    フォームのほうに

    <p class="error-message">未回答の必須フィールドまたはエラーを含む回答があります。 これをチェックしてください。</p>
    <p>[mwform_error keys="q1"]</p>
    <p>[mwform_error keys="q1-2"]</p>

    と設定。
    エラー時に共通のメッセージを出すことができました。

    本当にありがとうございました。

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