OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ポイント配分を間違えたときに出るあのメッセージ

  • 暇なときにでも
  • 質問No.207247
  • 閲覧数31
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 78% (132/169)

回答を締め切って、良回答・次点を同じ人などにしてしまった場合、エラーメッセージがでますが、あれはどのようにすればできるのでしょうか?
フォームメールで、ラジオボタンでチェックするようにしてますが、グループ分けだけでは、重複した回答になってしまうのです。
やっていることは、5つの項目で、1~5まで順位をつけてもらいたい、ということです。
gooでも、ラジオボタンで重複チェックはできますが、エラーメッセージがでます。
あれと同じことがしたいです。
ただ当方、これに関してまったく見当もつかず、Javaさんかな~?、くらいの知識です。
詳しい方法などに関しては、さすがに初心者すぎて、お願いしづらいのですが、
参考HPや、こういうのでやるんだよ、程度のアドバイスで結構ですので、
何卒、よろしくお願い申し上げます。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 47% (30/63)

はじめまして、yukiko5さん。

こういったケースの説明が書かれているHPとか知らず、javascript全くわからない?
ぽいんで、今回はやりたいこと(#質問を理解違いしてなければ)を実現できるよ!という
コードをのせちゃいますね。

#javascriptについてながながと書かれても多分辛いとおもったので、あえてこの
 やりたい事に限定した動くコードを書きました(^^ゞ
#一応処理の説明コメントをいれているので、やっている事はわかるよと思うよ。
 各javascript(関数・文)自体も理解したい!という事だったら、そこで使っている
 関数名等で初心者向けのjavascriptのページとかで勉強してみてね。
#サクサクと作ったものだけど、そのまま使ってもらってもいいですよ。
#gooがどうしているかは、質問だした事がないのでソースがみれない・・gooと同じでは
 ないです。

きっとこのradioの制御した後に次のページに渡すものと思うんだけど・・
この例のコードでは
   ・項目1~5を、ans1~ans5という名前で、値1~5をセット。
   ・次のページは、「XXX.XX」とダミーにしてある。
ので、君の使う環境に合わせて変更してね。

ではがんばって。

#長いレスになってしまいました^^;
#gooが(実際にはHTML規格上によるものだけど)空白文字を無視して表示しちゃうんで
 コードが行先頭から表示されて見づらくなっちゃうね。
 コードをよくみたい場合は、メモ帳とかにコピーして "{" 単位にタブや空白文字で
 段差をつけてみてね。

==(ここから)====

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check() {
var i;
var message = "";
var flag = true;
//配列[0]~[4]が値1~5のON指示あったかを判断する為につかう場所(0/1)=なし/あり
var on_array = Array(0,0,0,0,0);
var cnt = 0; //選択されている項目数をセット
var val;

//項目分のループ
for(i=1;i<=5;i++) {
//同値(順位)ONされてないか、またONされていない項目がないか、チェック
//#eval()にて可変変数参照を可能にしている、
// ans1~ans5かつ[0]~[4]分固定書きしなくてもよいのでコード量軽減

//1項目5値分のループ※配列は[0]開始
for(j=0;j<5;j++) {
var objname = "document.form1.ans"+i+"["+j+"].";
//ON選択されている箇所を発見
if( eval(objname+"checked") == true ) {
cnt++;
//指定値(順位)が既に選択済みかチェック
val = eval(objname+"value");
if( on_array[val-1] != 0 ) {
flag = false; //選択済み:同値複数選択判明
break;
}
on_array[val-1] = 1;

//1項目1つのONチェックとなるようnameを同一にしている為、
//1cheked確認したら本項目は他ONありえない
break;
}
}
}
if( flag == true && cnt != 5 ) //全項目選択されていない
message = "各項目1つずくONチェックして下さい";
else if( flag == false ) //同値(順位)選択があった
message = "同一値の指定なしでONチェックして下さい";

if( message != "" ) {
alert(message);
flag = false;
}

return(flag);
}
// -->
</SCRIPT>
</head>

<body>
<form name="form1" action="XXX.XX">
<!-- 1項目毎のHTMLコード:開始 -->
項目1<br>
<input type="radio" name="ans1" value="1">項目1の値A<br>
<input type="radio" name="ans1" value="2">項目1の値B<br>
<input type="radio" name="ans1" value="3">項目1の値C<br>
<input type="radio" name="ans1" value="4">項目1の値D<br>
<input type="radio" name="ans1" value="5">項目1の値E<br>
<p>

★2~4の部分は記載省略。同じような規則でかいてね★

項目5<br>
<input type="radio" name="ans5" value="1">項目5の値A<br>
<input type="radio" name="ans5" value="2">項目5の値B<br>
<input type="radio" name="ans5" value="3">項目5の値C<br>
<input type="radio" name="ans5" value="4">項目5の値D<br>
<input type="radio" name="ans5" value="5">項目5の値E<br>
<p>
<input type="submit" name="btn" value="送信" onClick="return check()">

</form>
</table>
</body>
</html>
補足コメント
yukiko5

お礼率 78% (132/169)

どうもありがとうございました。無事できました。
本当に初心者のクセに、大変申し訳ございません。。。。

ところで、再度質問させていただきたいのですが、
項目の値1-5を、アルファベット、もしくは漢字、などにはできるのでしょうか?
ちょっとやってみたら、何をしても、「選びなおして」のメッセージがでます。
どこらへんをいじるのか???ちょっと怖くててがでません。

大変申し訳ないのですが、再度お教えいただければと思います。
よろしくお願い申し上げます
投稿日時 - 2002-01-31 19:45:04
お礼コメント
yukiko5

お礼率 78% (132/169)

なんとかなってしまいました。ありがとうございました。
投稿日時 - 2002-02-04 11:27:59
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ