お知らせ

Movable Type 5 Webサイト製作ガイドVolume 12009年12月7日

Movable Type 5 Webサイト製作ガイドVolume 1」を発売しました。
Movable Type 5を基本からしっかりマスターしたい方のための書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

メールフォームプラグインV2.0・その16(チェック必須チェックボックスの作成)

| コメント(9) | トラックバック(0)

メールフォームプラグインでは、メールフォーム上に、チェック必須のチェックボックスを作ることもできます。
その方法を解説します。

1.チェック必須にするチェックボックスのフィールド名の設定

まず、チェック必須にしたいチェックボックスのフィールド名を設定します。

メールフォームの設定を開き、「フォームのチェック項目」の部分の「チェック必須とするフィールド」の欄に、フィールド名をコンマで区切って入力します。
例えば、「mail_agree」というフィールド名のチェックボックスをチェック必須にしたい場合、以下の画面のように設定します。

↓チェック必須にするチェックボックスのフィールド名を設定する例
mailformv2_16_1.png

2.エラーメッセージの表示

チェック必須チェックボックスをチェックせずにメールを送信しようとすると、送信エラーページが表示されるようになっています。
チェックされていないチェックボックスを判別して、エラーメッセージを表示するには、「MTMailPreviewIfNotChecked」という条件タグを使います。
このタグの書き方は以下のようになります。

<MTMailPreviewIfNotChecked name="チェックボックスのフィールド名">
表示するエラーメッセージ
</MTMailPreviewIfNotChecked>

たとえば、前述の「mail_agree」のチェックボックスがチェックされていないときに、「チェックをオンにしてください。」と表示するのであれば、以下のようにタグを組みます。

<MTMailPreviewIfNotChecked name="mail_agree">
<p>チェックをオンにしてください。</p>
</MTMailPreviewIfNotChecked>

このタグは、「メールフォーム共通部分」のテンプレートで、対象のチェックボックスのすぐ近くに入れると良いでしょう。

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1226.

コメント(スレッド4件,コメント9件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 やまだ : 複数の選択肢がある場合

お世話になります。
いくつかの選択肢があって、1つ以上のチェックを要求することはできますか?
選択肢すべてを同じフィールド名にすると、確認画面で全選択肢に同じ値が引き継がれてしまいます。
良い方法はありますでしょうか。

No.2  : Re:複数の選択肢がある場合

>やまださん
こんにちは。

申し訳ありませんが、このプラグインではご希望のようなことを行うことはできません。
JavaScriptで処理するようにしてください。

No.3 やまだ : Re:Re:複数の選択肢がある場合

わかりました。
お返事ありがとうございました。

No.4 田中通 : リンク修正依頼

対象URL: http://www.h-fj.com/blog/mtplgdoc/mailformv2.php
対象コーナー: 2-1.V2.0/V2.10共通の使い方
内容:
その14・メールアドレスの入力確認
その15・未入力エラーの判別
上記2つのページへのリンクが「その16」のURLになっていて,
その14, 15にアクセスできません.

No.5  : Re:リンク修正依頼

>田中通さん
こんにちは。

リンクの不具合をご指摘いただき、ありがとうございます。
さっそく修正しました。

No.6 田中通 : 追加の修正依頼

対象URL: http://www.h-fj.com/blog/mtplgdoc/mailformv2.php
対象コーナー: 2-1.V2.0/V2.10共通の使い方

その9,その11もリンクが違っていました.


一度にお知らせできればよかったのですが,申し訳ございません.

No.7 こやま : ラジオボタンの確認方法

いつもお世話になっています

ラジオボタンの入力確認について教えてください

MTSetParamListで生成された初期値がないラジオボタンが
通常のMTMailPreviewIfFieldErrorで未入力確認ができませんでした。

MTMailPreviewIfNotCheckedを使用したところ、未入力確認ができましたが、MTErrorMessageで、”フィールド hoge はチェック必須です。”と表示されます。

以下、確認させてください

1.ラジオボタンの入力確認は、MTMailPreviewIfFieldErrorで可能でしょうか?

2.ラジオボタンの入力確認を、MTMailPreviewIfNotCheckedでおこなっても問題内でしょうか?

3.MTErrorMessageは多重投稿エラーの表示に残したいと考えていますが、カスタマイズ可能でしょうか?

以上、お忙しいところ恐縮です
よろしくお願いいたします。

No.8  : Re:ラジオボタンの確認方法

>こやまさん
こんにちは。

「ラジオボタンのグループがあって、どれもチェックされていないまま、メールを送信された」という状況を判断したいということでしょうか。
だとすると、MTMailPreviewIfFieldErrorタグでは未入力をチェックすることができません。

MTMailPreviewIfFieldErrorタグは、「フィールドの値が空文字である」という条件を判断しています。
しかし、ラジオボタンのグループで、どれもチェックされないでメールが送信された場合、CGIには「そのラジオボタンのフィールド自体が存在しない」という形でデータが送信されてきます。そのため、「フィールドの値が空文字である」という条件が成立しません。

一方、MTMailPreviewIfNotCheckedタグは、フィールドが存在しないことを調べて、条件判断を行っています。
したがって、グループ内のラジオボタンがどれもチェックされていないかどうかは、MTMailPreviewIfNotCheckedタグで調べることができます。

また、MTErrorMessageタグは、エラーメッセージを簡易的に出力するのが目的です。
細かなエラーチェックを行う場合は、MTErrorMessageタグを使わずに、エラーチェック用の各種のタグを組み合わせてください。

もっとも、ラジオボタンは、デフォルトでどれか1つをオンにしておく方が良いのではないかと思います。

No.9 こやま : (無題)

藤本さん こんにちは

早速ご返事ありがとうございます。

仕様ということで理解しました。
チェックボックスは値がない場合があることは
理解していたのですが、ラジオボタンも考えてみれば
同じことですね。

デフォルト値があった方がよいのでは
というのはとても悩みました。検討してみます。

ありがとうございました!

コメントする