メールフォームプラグインV1.20(その8・入力エラーのチェック)

メールフォームプラグインでは、フォームに未入力のフィールドがあるときに、送信エラーのページを表示する機能があります。
今日はその使い方を解説します。

1.標準のエラーチェック

エラーチェックについて何も指定しない場合は、以下の状況のときに、送信エラーのページが表示されます。

  • 名前/メールアドレス/本文のいずれかが未入力のとき
  • メールアドレスの形式が正しくない場合

送信エラーページのテンプレートでは、「MTErrorMessage」というタグで、エラーメッセージを表示することができます。
例えば、本文が未入力のままで送信ボタンがクリックされた場合、MTErrorMessageタグの出力は、「本文を入力してください。」になります。

また、この後で述べる「MTMailPreviewIfFieldError」および「MTMailPreviewIfEMailError」のタグを使って、フィールドごとに個別にエラーをチェックすることもできます。

2.入力必須フィールドの指定

入力必須のフィールドを変えることもできます。
例えば、メールアドレスが未入力でもエラーにならないようにしたり、自分で追加したフィールドを入力必須にしたりすることができます。

入力必須のフィールドを指定するには、メールフォーム/送信前確認/送信エラーの各テンプレートのフォーム部分に、以下のようなタグを追加します。
複数のフィールドを入力必須にする場合は、フィールド名をコンマで区切ります。

<input type="hidden" name="mail_error_check_fields" value="エラーチェックを行うフィールドの名前" />

例えば、標準のメールフォームに、「mail_foo」という名前のフィールドを追加しているとします。
そのフィールドと、名前/本文を入力必須にしたい場合は、メールフォーム/送信前確認/送信エラーの各テンプレートのフォーム部分に、以下のようなタグを追加します。

<input type="hidden" name="mail_error_check_fields" value="mail_author,mail_text,mail_foo" />

なお、入力必須のフィールドを指定する場合で、名前/メールアドレス/本文を入力必須にしたい場合は、上の例にもあるように、それらのフィールド名もmail_error_check_fieldsに入れる必要があります。
また、全てのフィールドのエラーチェックを無効にするには、以下のようにします(ただし、「none」という名前のフィールドは作らないようにします)。

<input type="hidden" name="mail_error_check_fields" value="none" />

3.フィールドごとに未入力をチェックする

入力必須フィールドに入力がない場合、送信エラーページが表示されます。
その際に、エラーのフィールドごとに何らかのメッセージを表示したり、書式を変えたりすることもできます。

入力必須フィールドが未入力になっているかどうかは、「MTMailPreviewIfFieldError」という条件タグで判断します。
このタグの書き方は以下のようになります。

<MTMailPreviewIfFieldError name="未入力を調べるフィールドの名前">
フィールドが未入力の時に出力する内容
</MTMailPreviewIfFieldError>

例えば、本文(mail_text)を入力必須にするように指定していて、かつ本文が未入力されていないときに、「本文の入力は必須です。」というエラーメッセージを表示したいとします。
その場合、以下のようにタグを組みます。

<MTMailPreviewIfFieldError name="mail_text">本文の入力は必須です。</MTMailPreviewIfFieldError>

4.メールアドレスのエラーチェック

メールアドレス(mail_email)の形式が正しくない場合(メールアドレスに使えない文字が含まれている場合)にも、送信エラーページが表示されます。
メールアドレスの形式が正しくない時にエラーメッセージを表示するには、「MTMailPreviewIfEMailError」という条件タグを使います。
このタグの書き方は以下のようになります。

<MTMailPreviewIfEMailError>
メールアドレスの形式が正しくないときに出力する内容
</MTMailPreviewIfEMailError>

5.前後のエントリー

メールフォームプラグインは解説が長いので、エントリーを複数に分けています。
前後のエントリーは以下のリンクで参照することができます。

前のエントリー(その7・ラジオボタン/セレクトの追加)

また、サイドバーの「関連するエントリー」の箇所に、メールフォーム関連のエントリーの一覧が表示されていますので、そちらもご利用ください。