• ベストアンサー

フォームの生年月日のデータから年齢を割り出し、sumitしたい

はじめまして。質問させてください。 現在、個人情報を入力するフォームメールを作成中なのですが、生年月日を<select>タグで選択し、submitを押したときに、項目のチェックと年齢計算をして、年齢を<hidden>タグの値としてsubmitできるfunctionを作りたいのですが、<select>タグ内の情報が多すぎると、エラーになってしまい、submitできません。 下記、ソースです。 function CHK() { frm = document.forms[0]; //生年月日(年) if( frm.birth_year.selectedIndex == 0 ){ frm.birth_year.focus(); alert( "生年月日の年を入力してください。" ); return false; } ↑こんな感じのフォームチェックが10個ぐらい if( frm.birth_year.value != "" && m.birth_month.value != "" && frm.birth_day.value != "") { today = new Date(); tage = today.getFullYear() - Number(frm.birth_year.value); if (Number(frm.birth_month.value) > today.getMonth()+1 ) { tage = tage -1; }else if ( Number(frm.month.value) == today.getMonth()+1 && Number(frm.birth_day.value) > today.getDate() ) { tage = tage -1; } frm.age.value = tage; } frm.submit(); } 色々ためしているのですが、どうしてもエラーになってしまいます。どなたか解決法をご存知の方がいらっしゃいましたら、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • you111111
  • ベストアンサー率45% (20/44)
回答No.2

ご提示のソースでテストしてみましたが、 >if( frm.birth_year.value != "" && m.birth_month.value != "" && frm.birth_day.value != "") { の2番目frmがmになっている為エラーとなる以外、Selectを増やしても、optionを増やしても実行可能でしたが? #1さんのおっしゃる様に環境の提示があるとよいのでは?

その他の回答 (1)

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1

><select>タグ内の情報が多すぎると <slect>~</select>内のoptionが多いと言うことでしょうか。<select>自体の属性が多いと言うことでしょうか。 >色々ためしているのですが、どうしてもエラーになってしまいます。 どんな環境で、どんなエラーになるのでしょうか。