J01 文字化けしないformメール

フォームのmailto:はCGIを使わずにアンケートなどを作れるので便利ですが、送り返されるメールは文字化けしていてデコーダーで手間ひまかけて戻さなければなりません。でも、NN3.0からは、フォームメールの返送を文字化けしないようにする方法としてformタグ内にenctype="text/plain"の設定をするというものができました。でも、この方法だと、NN3.0より前のバージョンではFORMが機能しなくなってしまうという問題があります。そこで、JavaScriptのencoding命令を使って設定し、バージョンチェックしてNN3.0~の場合だけ機能させ、それ以外は普通の通常通りのフォームとして機能させるようにしました。


応用:実際のフォームに埋め込んでご利用ください。
参照: onSubmit, バージョンチェックif(navigator.appVersion.charAt(0)>=バージョン番号){命令}, encoding,

Sample

送信後メールを確認してみてください。


あなたのメールアドレス(xx@xxxx.or.jp)を入力してください。

このサンプルは簡単に試せるように宛先のメールアドレスを画面から入力するようにしてあります(参照 : action)。実際にはソースの中の"mailto:xx@xxxx.or.jp"の部分に自分のアドレスを書き込んで使ってください。



Source
ソース
(コピーしてお使いください)
<html>
<head>
<title></title>
</head>
<body>

<form name="f1"
      method="POST"
      action="mailto:xx@xxxx.or.jp"
      onSubmit="if(navigator.appVersion.charAt(0)>=3)
                       document.f1.encoding='text/plain' ">
  <input type="text" name="データ1">
  <input type="submit" value=" 送信 "><br>
  "mailto:xx@xxxx.or.jp"の部分を自分のメールアドレスに書き換えて送信してみてください。
</form>

</body>
</html>
action= のあとに送信先のアドレス(普通は自分のアドレス)を記入して使ってください

onSubmit="命令文"で送信ボタンが押されたら"命令文"を実行するという意味です

if( navigator.appVersion.charAt(0) >= 3 ){ 命令1 } else { 命令2 }はバージョンチェックです。NN3.0以降の命令を{命令1}に、それ以外バージョン用の処理を{命令2}に記述します。ちなみに、ここでは、else{命令2}と括弧{}を省略して使っています

document.f1.encoding='text/plain'でf1という名前のフォームの送信形式を'text/plain'にします


Contents
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)


Maintained by
tato@fureai.or.jp works1997 Toshirou Takahashi