今日は、メールフォームプラグインV2.0で、メールフォームにチェックボックス(<input type="checkbox"...>)を追加する方法を解説します。
1.「メールフォーム共通部分」のテンプレートへのタグの追加
まず、「メールフォーム共通部分」のテンプレートに、チェックボックス用のフィールドを追加します。
以下のようなタグを書くことで、チェックボックスを追加することができます。
なお、「送信値」とは、チェックがオンにされたときに、メール送信のCGIに送信される値のことです。
<input type="checkbox" name="フィールド名" value="送信値"<MTIf name="フィールド名"> checked="checked"</MTIf> />
また、初期状態でチェックをオンにしておくなら、「メールフォーム」のテンプレートの先頭に、以下のようなタグを追加します。
<MTSetVar name="フィールド名" value="送信値">
なお、フィールド名は自由に指定できますが、メールフォームプラグインの内部で使っている名前と重複しないようにする必要があります。
フィールド名の制限は、テキストボックスの追加のエントリーを参照してください。
2.例
メールフォームに、「要返信」というチェックボックスを追加したいとします。
フィールドの名前は「mail_require_reply」にするものとします。
また、チェックがオンのときには、メールフォームプラグインのCGIに「1」という値を渡したいとします。
この場合、「メールフォーム共通部分」のテンプレートには、以下のようなタグを入れます。
<p> <input type="checkbox" name="mail_require_reply" id="mail_require_reply" value="1"<MTIf name="mail_require_reply"> checked="checked"</MTIf> /> 要返信 </p>
また、このチェックボックスを初期状態でオンにしたいなら、「メールフォーム」のテンプレートに以下のようなタグを入れます。
<MTSetVar name="mail_require_reply" value="1">




![Hardcore Will Never Die, But You Will [Disc 2] Hardcore Will Never Die, But You Will [Disc 2]](http://userserve-ak.last.fm/serve/34s/71241534.jpg)
![Hardcore Will Never Die, But You Will [Bonus Tracks] Hardcore Will Never Die, But You Will [Bonus Tracks]](http://userserve-ak.last.fm/serve/34s/67192634.jpg)





コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
壱様。
お世話になります。
先日はセレクタの未入力をチェックについて。お教えいただき、
ありがとうございました。
無事思い通りの挙動になりましたので御礼申し上げます。
さて、メールフォームにチェックボックスを追加したのですが、
「確認」時にチェックボックスからチェックが外れてしまいます。
ラジオボタンも追加しているのですがこちらもチェックが外れてしまいます。
何度もお手間を取らせて申し訳ございませんが
ご教授ください。
よろしくお願いします。
>安部さん
こんにちは。
ご質問の件ですが、テンプレートを見てみないことには何とも言えません。
メールフォーム/送信確認/メールフォーム共通部分のテンプレートの内容をお知らせください。
チェックボックスを追加した場合の「メール本文」「返信メール」テンプレートへのタグの追加のやり方がわかりません。
メールフォーム共通部分には設置したのですが、タグを追加していないので確認やメール内容に反映されないので、お願いいたします。
申し訳ありません。解決しました。
他と同じくを使用するばいいのですね。
コメントは削除いただいて結構です。
ありがとうございます。
お世話になります。
Ajax版を利用させて頂いておりますが、初期値でチェックボックスにチェックが付いた状態で必須項目の未入力エラーが発生した場合、エラーページが展開した際にチェックボックスのチェックが勝手に外れてしまいます。
大変お手数ですが、原因など判りましたら教えていただけますでしょうか。
よろしくお願いいたします。
同じような現象で躓かれる方もいらっしゃるかと思いますので、ご報告です。
藤本様にテンプレートを見て頂いたところ、当該チェックボックスのinputタグ内にあるべきname属性が抜けていることがわかり、name属性を指定することで解決することができました。
どうして自分で気づかなかったのか・・・お恥ずかしい。
藤本様、ありがとうございました。