メールフォームプラグインでは、メールフォーム上に、チェック必須のチェックボックスを作ることもできます。
その方法を解説します。
1.チェック必須にするチェックボックスのフィールド名の設定
まず、チェック必須にしたいチェックボックスのフィールド名を設定します。
メールフォームの設定を開き、「フォームのチェック項目」の部分の「チェック必須とするフィールド」の欄に、フィールド名をコンマで区切って入力します。
例えば、「mail_agree」というフィールド名のチェックボックスをチェック必須にしたい場合、以下の画面のように設定します。
↓チェック必須にするチェックボックスのフィールド名を設定する例
![]()
2.エラーメッセージの表示
チェック必須チェックボックスをチェックせずにメールを送信しようとすると、送信エラーページが表示されるようになっています。
チェックされていないチェックボックスを判別して、エラーメッセージを表示するには、「MTMailPreviewIfNotChecked」という条件タグを使います。
このタグの書き方は以下のようになります。
<MTMailPreviewIfNotChecked name="チェックボックスのフィールド名"> 表示するエラーメッセージ </MTMailPreviewIfNotChecked>
たとえば、前述の「mail_agree」のチェックボックスがチェックされていないときに、「チェックをオンにしてください。」と表示するのであれば、以下のようにタグを組みます。
<MTMailPreviewIfNotChecked name="mail_agree"> <p>チェックをオンにしてください。</p> </MTMailPreviewIfNotChecked>
このタグは、「メールフォーム共通部分」のテンプレートで、対象のチェックボックスのすぐ近くに入れると良いでしょう。









コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
お世話になります。
いくつかの選択肢があって、1つ以上のチェックを要求することはできますか?
選択肢すべてを同じフィールド名にすると、確認画面で全選択肢に同じ値が引き継がれてしまいます。
良い方法はありますでしょうか。
>やまださん
こんにちは。
申し訳ありませんが、このプラグインではご希望のようなことを行うことはできません。
JavaScriptで処理するようにしてください。
わかりました。
お返事ありがとうございました。
対象URL: http://www.h-fj.com/blog/mtplgdoc/mailformv2.php
対象コーナー: 2-1.V2.0/V2.10共通の使い方
内容:
その14・メールアドレスの入力確認
その15・未入力エラーの判別
上記2つのページへのリンクが「その16」のURLになっていて,
その14, 15にアクセスできません.
>田中通さん
こんにちは。
リンクの不具合をご指摘いただき、ありがとうございます。
さっそく修正しました。
対象URL: http://www.h-fj.com/blog/mtplgdoc/mailformv2.php
対象コーナー: 2-1.V2.0/V2.10共通の使い方
その9,その11もリンクが違っていました.
一度にお知らせできればよかったのですが,申し訳ございません.
いつもお世話になっています
ラジオボタンの入力確認について教えてください
MTSetParamListで生成された初期値がないラジオボタンが
通常のMTMailPreviewIfFieldErrorで未入力確認ができませんでした。
MTMailPreviewIfNotCheckedを使用したところ、未入力確認ができましたが、MTErrorMessageで、”フィールド hoge はチェック必須です。”と表示されます。
以下、確認させてください
1.ラジオボタンの入力確認は、MTMailPreviewIfFieldErrorで可能でしょうか?
2.ラジオボタンの入力確認を、MTMailPreviewIfNotCheckedでおこなっても問題内でしょうか?
3.MTErrorMessageは多重投稿エラーの表示に残したいと考えていますが、カスタマイズ可能でしょうか?
以上、お忙しいところ恐縮です
よろしくお願いいたします。
>こやまさん
こんにちは。
「ラジオボタンのグループがあって、どれもチェックされていないまま、メールを送信された」という状況を判断したいということでしょうか。
だとすると、MTMailPreviewIfFieldErrorタグでは未入力をチェックすることができません。
MTMailPreviewIfFieldErrorタグは、「フィールドの値が空文字である」という条件を判断しています。
しかし、ラジオボタンのグループで、どれもチェックされないでメールが送信された場合、CGIには「そのラジオボタンのフィールド自体が存在しない」という形でデータが送信されてきます。そのため、「フィールドの値が空文字である」という条件が成立しません。
一方、MTMailPreviewIfNotCheckedタグは、フィールドが存在しないことを調べて、条件判断を行っています。
したがって、グループ内のラジオボタンがどれもチェックされていないかどうかは、MTMailPreviewIfNotCheckedタグで調べることができます。
また、MTErrorMessageタグは、エラーメッセージを簡易的に出力するのが目的です。
細かなエラーチェックを行う場合は、MTErrorMessageタグを使わずに、エラーチェック用の各種のタグを組み合わせてください。
もっとも、ラジオボタンは、デフォルトでどれか1つをオンにしておく方が良いのではないかと思います。
藤本さん こんにちは
早速ご返事ありがとうございます。
仕様ということで理解しました。
チェックボックスは値がない場合があることは
理解していたのですが、ラジオボタンも考えてみれば
同じことですね。
デフォルト値があった方がよいのでは
というのはとても悩みました。検討してみます。
ありがとうございました!