備忘録 TransmitMailのヴァリデーション設定

web制作関係での連続エントリーです。

まーそんなことはおいといて
そもそも、phpは普段から扱っていないわけです。
無料で多機能なformを使いたいってことで
TransmitMailは自社でも設置していますが
自分でやったことといえば、多少カスタマイズしてあるとはいえ
元々v1でだったものをv2にアップデートしたという程度のことです。

今回はそれなりに向き合ってみましたが
中身を無茶苦茶いじるわけではないので
当たり前ですがダウンロード・設置自体に苦労はありませんでした。
必要な項目を選別して、必要な設定をしていけば良いわけですからね。

しかし、ヴァリデーションチェックの設定で少しはまりましたね。
一見するとそれぞれのタイプに応じたパターンが用意されていますし
if文で明快な感じなんで、通常のテキスト入力はサクッとできました。

しかし、マルチラインとメールアドレス少しはまりました。
できてしまってから冷静に考えたら、まーそらーそーかと思えるんですけどね。

メールアドレス

まず、

'type="text"'

だってことに気づきませんでした。
単純にコピペして使えばよかったんですが、先入観で

'type="email"'

としてしまってましたが指定の書式に修正して設定。

ここで何度かテストしていて気づいたんですが
“@”を含むメールアドレスの書式になっていなければ、エラーになるんですが
無記入だと通ってしまう。これじゃー、そもそもヴァリデーションチェックの意味がない。
てことで、ハマること2時間。なるほどこーゆーことね。

'<input type="text" name="メールアドレス" value="{$メールアドレス}" placeholder="メールアドレスを入力して下さい" class='middle'>
<input type="hidden" name="email[]" value="メールアドレス">
<input type="hidden" name="required[]" value="メールアドレス">
{if:$email.メールアドレス}
<small class="error">有効なメールアドレスを入力して下さい。</small>
{/if:$email.メールアドレス}
{if:$required.メールアドレス}
<small class="error">メールアドレスを入力して下さい。</small>
{/if:$required.メールアドレス}'

必須項目(required)にしたうえでメールアドレスの書式もチェックする。
ということで、対応できました。

マルチラインテキスト

textareaタグを使うわけですが
これに関してのヴァリデーション設定のサンプルがない。
しかし、今までの流れから試してみる価値があることとしては一つしか思いつきません。
だって、他のinputタグを使ってるものはすべからく
同じ仕様なんです。ということで、こちらはハマることなく、あまり思案することなく
運良く設定できました。

'<textarea rows="10" name="ご質問内容" placeholder="ご質問内容を入力して下さい">{$ご質問内容}</textarea>
<input type="hidden" name="required[]" value="ご質問内容">
{if:$required.ご質問内容}
<small class="error">ご質問内容を入力して下さい。</small>
{/if:$required.ご質問内容}'


コメントを書く