下記のように入力すると、チェックボックスがundefinedと表示されてしまいます。
どのように変更すればよいのでしょうか?
教えてください
<script type="text/javascript">
<!--
function CheckForm(){
//****************送信内容の取得****************
var data = new Array();
var namesArray = new Array(
'Name', 'Sex', 'Age', 'Address'
, 'Tel', 'Email');
var f = document.forms[0];
for (var i in namesArray){
var n = namesArray[i];
if (n == 'Sex'){
data[n] = '';
for (var j = 0; j < f[n].length; j++){
if (f[n][j].checked){
data[n] = f[n][j].value;
break;
}
}
}
else{
data[n] = f[n].value;
}
}
//****************名前のチェック****************
if (data.Name.length == 0){
alert('名前が入力されていません。');
f.Name.focus();
return false;
}
//***********確認ダイアログによる確認***********
return confirm('下記の内容で送信して'
+ 'よろしいですか?\n\n'
+ '選んでください:\t\t' + data.Course1 + '\n' + data.Course2 + '\n' + data.Course3 + '\n'
+ '名前:\t\t' + data.Name + '\n'
+ '性別:\t\t' + data.Sex + '\n'
+ '年齢:\t\t' + data.Age + '\n'
+ '住所:\t\t' + data.Address + '\n'
+ '電話番号:\t' + data.Tel + '\n'
+ 'E-Mailアドレス:\t' + data.Email);
}
//-->
</script>
<form action="/kantan-cgi/formmail.pl?id=*********"
method="post" onSubmit="return CheckForm();">
<dl>
<dt><span class="mainBp">【選んでください】</span></dt>
<dd><input type="checkbox" name="Course1" value="コース1" />コース1
<input type="checkbox" name="Course2" value="コース2" />コース2
<input type="checkbox" name="Course3" value="コース3" />コース3</dd>
<dt>名前(必須)</dt>
<dd><input type="text" name="Name" /></dd>
<dt>性別</dt>
<dd>
<input type="radio" name="Sex" value="男性" />男
<input type="radio" name="Sex" value="女性" />女
</dd>
<dt>年齢</dt>
<dd><input type="text" name="Age" size="2" /></dd>
<dt>住所</dt>
<dd><input type="text" name="Address" size="70" /></dd>
<dt>電話番号</dt>
<dd><input type="text" name="Tel" /></dd>
<dt>E-Mailアドレス</dt>
<dd><input type="text" name="Email" size="50" /></dd>
</dl>
<input type="submit" value="送信" />
</form>
No.5ベストアンサー
- 回答日時:
ああ、セレクトですね・・・
その場合はチェック項目を一つ増やします
<script>
function CheckForm(f){
var namesArray = new Array(
{"key":'Name',"err":"名前が入力されていません。"}
, {"key":'Sex',"err":"性別が選択されていません。"}
, {"key":'Age',"err":"年齢が入力されていません。"}
, {"key":'Address',"err":"住所が入力されていません。"}
, {"key":'Tel',"err":"電話番号が入力されていません。"}
, {"key":'Email',"err":"メールアドレスが入力されていません。"}
, {"key":'Visited',"err":"利用履歴が選択されていません。"}
);
for (var i in namesArray){
var k = namesArray[i]["key"];
var e = f.elements[k];
if(e.type=="text" && e.value==""){
alert(namesArray[i]["err"]);
return false;
}
if(e.type=="select-one" && e.value==""){
alert(namesArray[i]["err"]);
return false;
}
if((typeof e[0])!="undefined" && e[0].type=="radio"){
var flg=true;
for(var j=0;j<e.length;j++){
if(e[j].checked){
flg=false;
break;
}
}
if(flg){
alert(namesArray[i]["err"]);
return false;
}
}
}
var msg="";
msg+='選んでください:\n' ;
msg+=f.elements["Course1"].checked?'\t\t'+f.elements["Course1"].value+ '\n':"";
msg+=f.elements["Course2"].checked?'\t\t'+f.elements["Course2"].value+ '\n':"";
msg+=f.elements["Course3"].checked?'\t\t'+f.elements["Course3"].value+ '\n':"";
msg+='名前:\t\t' + f.elements["Name"].value + '\n';
msg+='性別:\t\t' + (f.elements["Sex"][0].checked?f.elements["Sex"][0].value:f.elements["Sex"][1].value )+ '\n';
msg+='年齢:\t\t' + f.elements["Age"].value + '\n';
msg+='住所:\t\t' + f.elements["Address"].value + '\n';
msg+='電話番号:\t' + f.elements["Tel"].value + '\n';
msg+='E-Mailアドレス:\t' + f.elements["Email"].value + '\n';
msg+='履歴:\t\t' + f.elements["Visited"].value + '\n';
return confirm('下記の内容で送信してよろしいですか?\n\n'+msg);
}
</script>
<form onSubmit="return CheckForm(this);">
<dl>
<dt><span class="mainBp">【選んでください】</span></dt>
<dd><input type="checkbox" name="Course1" value="コース1" />コース1
<input type="checkbox" name="Course2" value="コース2" />コース2
<input type="checkbox" name="Course3" value="コース3" />コース3</dd>
<dt>名前(必須)</dt>
<dd><input type="text" name="Name" /></dd>
<dt>性別</dt>
<dd>
<input type="radio" name="Sex" value="男性" />男
<input type="radio" name="Sex" value="女性" />女
</dd>
<dt>年齢</dt>
<dd><input type="text" name="Age" size="2" /></dd>
<dt>住所</dt>
<dd><input type="text" name="Address" size="70" /></dd>
<dt>電話番号</dt>
<dd><input type="text" name="Tel" /></dd>
<dt>E-Mailアドレス</dt>
<dd><input type="text" name="Email" size="50" /></dd>
<dt>利用履歴(必須)</dt>
<dd><select name="Visited">
<option value=""> -- 選択して下さい -- </option>
<option value="利用したことがない">利用したことがない</option>
<option value="以前、利用したことがある">以前、利用したことがある</option>
</select></dd>
</dl>
<input type="submit" value="送信" />
</form>
No.4
- 回答日時:
>のなかにメニューフォームを入れたのですが、反応しません
ごめんなさい、意味がわからない。
メニューフォームとは何のことで、それをどのように実装したいのでしょうか?
具体的に提示していただけると回答できるかも
下記の利用履歴の
<dt>利用履歴(必須)</dt>
<dd><select name="Visited">
<option value=""> -- 選択して下さい -- </option>
<option value="利用したことがない">利用したことがない</option>
<option value="以前、利用したことがある">以前、利用したことがある</option>
</select></dd>
だと
{"key":'Visited',"err":"利用履歴が選択されていません。"}
が反応しないのです。何度もすみさせんお願いします。
----------------------------------------------------------------------
<script>
function CheckForm(f){
var namesArray = new Array(
{"key":'Visited',"err":"利用履歴が選択されていません。"}
, {"key":'Name',"err":"名前が入力されていません。"}
, {"key":'Sex',"err":"性別が選択されていません。"}
, {"key":'Age',"err":"年齢が入力されていません。"}
, {"key":'Address',"err":"住所が入力されていません。"}
, {"key":'Tel',"err":"電話番号が入力されていません。"}
, {"key":'Email',"err":"メールアドレスが入力されていません。"}
);
for (var i in namesArray){
var k = namesArray[i]["key"];
var e = f.elements[k];
if(e.type=="text" && e.value==""){
alert(namesArray[i]["err"]);
return false;
}
if((typeof e[0])!="undefined" && e[0].type=="radio"){
var flg=true;
for(var j=0;j<e.length;j++){
if(e[j].checked){
flg=false;
break;
}
}
if(flg){
alert(namesArray[i]["err"]);
return false;
}
}
}
var msg="";
msg+='選んでください:\n' ;
msg+=f.elements["Course1"].checked?'\t\t'+f.elements["Course1"].value+ '\n':"";
msg+=f.elements["Course2"].checked?'\t\t'+f.elements["Course2"].value+ '\n':"";
msg+=f.elements["Course3"].checked?'\t\t'+f.elements["Course3"].value+ '\n':"";
msg+='利用履歴:\t\t' + f.elements["Visited"].value + '\n';
msg+='名前:\t\t' + f.elements["Name"].value + '\n';
msg+='性別:\t\t' + (f.elements["Sex"][0].checked?f.elements["Sex"][0].value:f.elements["Sex"][1].value )+ '\n';
msg+='年齢:\t\t' + f.elements["Age"].value + '\n';
msg+='住所:\t\t' + f.elements["Address"].value + '\n';
msg+='電話番号:\t' + f.elements["Tel"].value + '\n';
msg+='E-Mailアドレス:\t' + f.elements["Email"].value;
return confirm('下記の内容で送信してよろしいですか?\n\n'+msg);
}
</script>
<form onSubmit="return CheckForm(this);">
<dl>
<dt><span class="mainBp">【選んでください】</span></dt>
<dd><input type="checkbox" name="Course1" value="コース1" />コース1
<input type="checkbox" name="Course2" value="コース2" />コース2
<input type="checkbox" name="Course3" value="コース3" />コース3</dd>
<dt>利用履歴(必須)</dt>
<dd><select name="Visited">
<option value=""> -- 選択して下さい -- </option>
<option value="利用したことがない">利用したことがない</option>
<option value="以前、利用したことがある">以前、利用したことがある</option>
</select></dd>
<dt>名前(必須)</dt>
<dd><input type="text" name="Name" /></dd>
<dt>性別</dt>
<dd>
<input type="radio" name="Sex" value="男性" />男
<input type="radio" name="Sex" value="女性" />女
</dd>
<dt>年齢</dt>
<dd><input type="text" name="Age" size="2" /></dd>
<dt>住所</dt>
<dd><input type="text" name="Address" size="70" /></dd>
<dt>電話番号</dt>
<dd><input type="text" name="Tel" /></dd>
<dt>E-Mailアドレス</dt>
<dd><input type="text" name="Email" size="50" /></dd>
</dl>
<input type="submit" value="送信" />
</form>
No.3
- 回答日時:
今回のケースだとこんな感じでしょうか?
かなり元ソースが汚いので、よく推敲して理解を深めた方がよいでしょう
あと、コースについては「少なくともどれか一つは選ばなくてはいけない」など
特殊なバリデートが必要な気がしますが・・・
<script>
function CheckForm(f){
var namesArray = new Array(
{"key":'Name',"err":"名前が入力されていません。"}
, {"key":'Sex',"err":"性別が選択されていません。"}
, {"key":'Age',"err":"年齢が入力されていません。"}
, {"key":'Address',"err":"住所が入力されていません。"}
, {"key":'Tel',"err":"電話番号が入力されていません。"}
, {"key":'Email',"err":"メールアドレスが入力されていません。"}
);
for (var i in namesArray){
var k = namesArray[i]["key"];
var e = f.elements[k];
if(e.type=="text" && e.value==""){
alert(namesArray[i]["err"]);
return false;
}
if((typeof e[0])!="undefined" && e[0].type=="radio"){
var flg=true;
for(var j=0;j<e.length;j++){
if(e[j].checked){
flg=false;
break;
}
}
if(flg){
alert(namesArray[i]["err"]);
return false;
}
}
}
var msg="";
msg+='選んでください:\n' ;
msg+=f.elements["Course1"].checked?'\t\t'+f.elements["Course1"].value+ '\n':"";
msg+=f.elements["Course2"].checked?'\t\t'+f.elements["Course2"].value+ '\n':"";
msg+=f.elements["Course3"].checked?'\t\t'+f.elements["Course3"].value+ '\n':"";
msg+='名前:\t\t' + f.elements["Name"].value + '\n';
msg+='性別:\t\t' + (f.elements["Sex"][0].checked?f.elements["Sex"][0].value:f.elements["Sex"][1].value )+ '\n';
msg+='年齢:\t\t' + f.elements["Age"].value + '\n';
msg+='住所:\t\t' + f.elements["Address"].value + '\n';
msg+='電話番号:\t' + f.elements["Tel"].value + '\n';
msg+='E-Mailアドレス:\t' + f.elements["Email"].value;
return confirm('下記の内容で送信してよろしいですか?\n\n'+msg);
}
</script>
<form onSubmit="return CheckForm(this);">
<dl>
<dt><span class="mainBp">【選んでください】</span></dt>
<dd><input type="checkbox" name="Course1" value="コース1" />コース1
<input type="checkbox" name="Course2" value="コース2" />コース2
<input type="checkbox" name="Course3" value="コース3" />コース3</dd>
<dt>名前(必須)</dt>
<dd><input type="text" name="Name" /></dd>
<dt>性別</dt>
<dd>
<input type="radio" name="Sex" value="男性" />男
<input type="radio" name="Sex" value="女性" />女
</dd>
<dt>年齢</dt>
<dd><input type="text" name="Age" size="2" /></dd>
<dt>住所</dt>
<dd><input type="text" name="Address" size="70" /></dd>
<dt>電話番号</dt>
<dd><input type="text" name="Tel" /></dd>
<dt>E-Mailアドレス</dt>
<dd><input type="text" name="Email" size="50" /></dd>
</dl>
<input type="submit" value="送信" />
</form>
何度もすみません
上記の
var namesArray = new Array(
{"key":'Name',"err":"名前が入力されていません。"}
, {"key":'Sex',"err":"性別が選択されていません。"}
, {"key":'Age',"err":"年齢が入力されていません。"}
, {"key":'Address',"err":"住所が入力されていません。"}
, {"key":'Tel',"err":"電話番号が入力されていません。"}
, {"key":'Email',"err":"メールアドレスが入力されていません。"}
);
のなかにメニューフォームを入れたのですが、反応しません
どうしてでしょうか?
No.2
- 回答日時:
#1 です。
必須項目を加えるのなら「名前」と同じ要領でやれないでしょうか?
汎用性重視なら http://www.tagindex.com/kakolog/q4bbs/2201/2595. … が参考になるかも。
サイトを確認したのですが素人なので...
ちょっと理解できませんでした
すみません
よろしければ、いちどサイトを見てもらえないでしょうか?
http://www.david-men.com/webmail.html
No.1
- 回答日時:
ありがとうございました。
問題解決しました。
ただ、あまりに使っていたjavascriptの記述と違いすぎて、こんどは必須の追加ができなくなてしまいました。どのように追加すればよいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
value内に変数を入れたい
-
[C#]連想配列の中に配列を入れたい
-
チェックボックスがundefinedと...
-
VB.NET DateTimeの型について
-
ラジオボタンの値取得
-
javascriptでhiddenに二次元配...
-
テキストボックスに入力された...
-
return trueとreturn falseの用...
-
プルダウン選択を変更すると、...
-
slickのレスポンシブ > center...
-
FormのonsubmitでJavaスクリプ...
-
onchangeイベントを強制的に発...
-
submitがおされた同時に JavaSc...
-
select要素のvalueを配列で取得...
-
Selectボックスの幅を自動で広...
-
HTMLファイル同士での値渡し
-
ラジオボタンの値でリンク先を...
-
ラジオボタンとプルダウンを連...
-
Selectの中身をfor文で入れる
-
JQuery selectが反映されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
switchを使って四則演算のプロ...
-
VB.NET DateTimeの型について
-
クイズ作成:15個の問題から5個...
-
C言語クイックソートの比較総回...
-
セレクトボックスの初期選択状...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
ラジオボタンと連動して文字列...
-
setIntervalの間隔を途中で変更...
-
JAVASCRIPTで、ボタンを押した...
-
sessionStorageを調べています。
-
クリックの度に加算していくには?
-
マクロ オブジェクト変数With...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
おすすめ情報