この使用例は、メールを使ってフォーム内容を
送信する時に、記入漏れがあれば知らせる物です。

色で書かれた文字は同色で書かれた同じ名前を使用するということです。
確認をクリックすれば実際の動きを見られます。
確認後はブラウザの "戻る" ボタンで戻ってください。

確認


  1. <HTML>
  2. <HEAD>
  3. <TITLE>フォームの内容確認</TITLE>
  4. <Script Language="JavaScript">
  5. <!--
  6. //チェック項目の変数を宣言
  7.   var f1=false,f2=false,f3=false,f4=false,f5=false;
  8. //START 記入項目チェック
  9.   function Check(){
  10.     if (document.MyForm.yourname.value==""){
  11.       alert("お名前が入力されていません");
  12.       return false;
  13.     }
  14.     if (f1==false && f2==false){
  15.       alert("性別の項目がチェックされていません");
  16.       return false;
  17.     }
  18.     if (document.MyForm.email.value==""){
  19.       alert("メールアドレスが入力されていません");
  20.       return false;
  21.     }
  22.     if (f3==false && f4==false && f5==false){
  23.       alert("ブラウザの項目がチェックされていません");
  24.       return false;
  25.     }
  26.     if(document.MyForm.message.value==""){
  27.       alert("メッセージが入力されていません");
  28.       return false;
  29.     }
  30. // END 記入項目チェック
  31. // START 記入漏れがなかったときの処理
  32.     return send();
  33.   }
  34. // END 記入漏れがなかったときの処理
  35. // START 送信確認処理
  36.   function send(){
  37.     result = confirm("送信してよろしいですか?");
  38.     if (result==true){
  39.       return true;
  40.     }
  41.     else{
  42.       return false;
  43.     }
  44.   }
  45. // END 送信確認処理
  46. // START ”取り消し”ボタンを押したときの処理
  47.   function cls(){
  48.     result = confirm("記入された物が削除されます");
  49.     if (result==true){
  50.       document.MyForm.reset();
  51.     }
  52.   }
  53. // END ”取り消し”ボタンを押したときの処理
  54. //-->
  55. </SCRIPT>
  56. </HEAD>
  57. <BODY>
  58. <H1>アンケートにお答えください</H1>
  59. <HR><B>
  60. <FORM NAME="MyForm" ACTION="mailto:your@mail.address?subject=*** test_mail ***"
  61. METHOD="POST" ENCTYPE="text/plain" onSubmit="return Check()">
  62. <INPUT TYPE="hidden" NAME="title" VALUE="*** test_mail ***">
  63. お名前:(半角カナでの記入はできません。)<BR>
  64. <INPUT TYPE="text" NAME="yourname" SIZE="45">
  65. <P>
  66. 性 別:
  67. <INPUT TYPE="radio" NAME="sex" VALUE="male" checked onClick="f1=!f1">男性
  68. <INPUT TYPE="radio" NAME="sex" VALUE="female" onClick="f2=!f2">女性
  69. <P>
  70. E-mailアドレス:<BR>
  71. <INPUT TYPE="text" NAME="email" VALUE="E-mail@mail.address" SIZE="45">
  72. <P>
  73. 持っているブラウザ<br>
  74. <INPUT TYPE="checkbox" NAME="Netscape" VALUE="On"
  75. onClick="f3=!f3">Netscape<br>
  76. <INPUT TYPE="checkbox" NAME="Explorer" VALUE="On"
  77. onClick="f4=!f4">Explorer<br>
  78. <INPUT TYPE="checkbox" NAME="Other" VALUE="On"
  79. onClick="f5=!f5">その他
  80. <p>
  81. 使用している機械<br>
  82. <SELECT NAME="Machine">
  83. <OPTION SELECTED>DOS/V
  84. <OPTION>PC-98
  85. <OPTION>PC98-NX
  86. <OPTION>Mac
  87. <OPTION>UNIX
  88. </SELECT>
  89. <P>
  90. メッセージ:(半角カナでの記入はできません。)<BR>
  91. <TEXTAREA NAME="message" ROWS="20" COLS="48"></TEXTAREA>
  92. <BR><BR>
  93. <INPUT TYPE="submit" VALUE="送  る">
  94. <INPUT TYPE="button" VALUE="取り消し" onClick="cls()">
  95. </FORM>
  96. </B>
  97. </BODY>
  98. </HTML>




プログラムの説明です。< >で囲まれた部分は、行番号を
表しています。また、クリックすればその行へジャンプします。

<11>
var 名前(f1など)[=値,名前=値…]; と書いてそれぞれの宣言をします。
<14>
関数名 Check() は、好きな名前でかまいませんが、
同じページ内に別のJavaScriptを使うときは、
同じ関数名は使えないので別々の関数名にしてください。
<15>
MyFormの部分は、下に書くformの名前です。
<71>
ACTION="mailto:あなたのメールアドレス?subject=メールのタイトル" と書いてください。
2バイト文字(日本語等)をメールタイトルにすると文字化けを起こす可能性があります
アルファベット及び英数字のみで記入してください。
<72>
ENCTYPE="text/plain"と書かないと送信されてきたデータのフォーマットが
textに変換されてきません。onSubmitは送信ボタンが押されたときに使う関数を指示する物です。
SubmitCheck() は上で宣言した関数名を書いてください。
<74>
メールのタイトルとするものを VALUE=" " に記入してください。
<77>
NAME="xxxx"とはメールで送られてくるときの項目名となります。
また、NAME="name" とするとNetscapeでは "Scriptエラー" となります。
<80>
<INPUT TYPE="xxx" NAME="xxx" VALUE="xxx" checked onClick="xxxx">
XXXXとすると初期値としてチェックされている状態となります。
(動作見本では初期値のチェックはしていません)
<84>
VALUE="xxxx"と書くとテキストボックス内に初期値として
"xxxx" が入力された状態となります。
<96>
SELECTED に指定されている項目は、初期値として
選択されている状態になります。
<104>
ROWでテキストエリアの横幅、COLS縦幅を指定します。




警告を出さなくて良いところは、HEAD部で

if(document.MyForm.message.value==""){
  alert("メッセージが入力されていません");
  return false;
}
上のようなIF文を記述しない。
または、
//  if(document.MyForm.message.value==""){
//    alert("メッセージが入力されていません");
//    return false;
//  }
上のように行の頭に // と書いてコメントにすれば大丈夫です。



back