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

if をいくつか重ねたら実行してくれません

  • 困ってます
  • 質問No.209945
  • 閲覧数94
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 78% (132/169)

function incheckの中に、5つほどifを重ねてみました。条件に合わないとアラーとをだします。選択はラジオボタンで行っています。
条件に合わないと各々それに応じたアラートがでるところまではなんとか出来ましたが、
2回目に選択しなおして、かつそれが再度すべての条件にあっていないにもかかわらず、OKとされてしまいます。
一度ひとつのif条件にあったことをしてしまうと、そのif条件は2度目からチェックしてくれません。
どうすれば、つどつど全部のif条件をチェックしてくれるでしょうか?
尚、こちらにタグを貼ろうとしたら、質問の欄は文字制限があるようで、ちょっとオーバーしてしまいました。
どなたかが回答してくださったら、すぐに補足欄にはらさせていただきます。
あいまいな質問で申し訳ないのですが、どなたかよろしくご指導願います。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル14

ベストアンサー率 24% (612/2465)

ひとつづつ必ず選んで、順位付けをするようにするのでしょうか。
それで、一度りんごを1位にして、みかんを1位に選びなおすとりんごの未チェックが判定できない。ということでしょうか。
これは、チェックが外れたときにfalseにならないせいですね。
それだと、このようにしてはいかがですか。
----
<p>りんご
<input type="radio" name="R1" value="りんご" onclick="f11=true,f12=false,f13=false">
<input type="radio" name="R2" value="りんご" onclick="f21=true,f22=false,f23=false">
<input type="radio" name="R3" value="りんご" onclick="f31=true,f32=false,f33=false"></p>
<p>みかん
<input type="radio" name="R1" value="みかん" onclick="f11=false,f12=true,f13=false">
<input type="radio" name="R2" value="みかん" onclick="f21=false,f22=true,f23=false">
<input type="radio" name="R3" value="みかん" onclick="f31=false,f32=true,f33=false"> </p>
<p>いちご
<input type="radio" name="R1" value="いちご" onclick="f11=false,f12=false,f13=true">
<input type="radio" name="R2" value="いちご" onclick="f21=false,f22=false,f23=true">
<input type="radio" name="R3" value="いちご" onclick="f31=false,f32=false,f33=true"> </p>
---
他のラジオボタンが押されたときに、その他のフラグ情報をfalseにします。
もっとスマートな方法があるかもしれませんが、とりあえずお試しください。
補足コメント
yukiko5

お礼率 78% (132/169)

>ひとつづつ必ず選んで、順位付けをするようにするのでしょうか。
>それで、一度りんごを1位にして、みかんを1位に選びなおすとりんごの未チェック>が判定できない。ということでしょうか。
そうです。まさにそうです。

>これは、チェックが外れたときにfalseにならないせいですね。
そうか!そうすればいいのかー。

>それだと、このようにしてはいかがですか。
はい、さっそくやってみたいのですが、退社時間がきてしまいました。
自宅に帰ってから、再度挑戦いたします。
ひょっとしたらお礼が月曜になってしまうかもしれませんが、
申し訳ないのですが、少々お待ちくださいませ。

本当にありがとうございました。やってみまーす!
投稿日時 - 2002-02-01 19:56:36
お礼コメント
yukiko5

お礼率 78% (132/169)

でけました。ありがとうございました。
とてもわかりやすかったです。
遅い時間にすばやく対応頂きまして助かりました。
ありがとうございました。
投稿日時 - 2002-02-04 11:07:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 24% (612/2465)

回答できるかわかりませんが、とりあえずソースを見せてください。 ...続きを読む
回答できるかわかりませんが、とりあえずソースを見せてください。
補足コメント
yukiko5

お礼率 78% (132/169)

<script language="JavaScript">
<!--
f11=false;
f21=false;
f31=false;
f12=false;
f22=false;
f32=false;
f13=false;
f23=false;
f33=false;

//入力ミスの判別
function incheck() {
if (f11==false && f21==false && f31==false){
window.alert("りんごが選ばれていません");
return false;}
   if (f12==false && f22==false && f32==false){
window.alert("みかんが選ばれていません");
return false;}
if (f13==false && f23==false && f33==false){
window.alert("いちごが選ばれていません");
return false;}
}
//--->
</script>

<form action="http://www.altoworld.com/form2/post.cgi"
method="POST" onsubmit="return incheck();">
<p>りんご<input type="radio" name="R1" value="りんご"
onclick="f11=true"> <input type="radio" name="R2"
value="りんご" onclick="f21=true"> <input type="radio"
name="R3" value="りんご" onclick="f31=true"></p>
<p>みかん<input type="radio" name="R1" value="みかん"
onclick="f12=true"> <input type="radio" name="R2"
value="みかん" onclick="f22=true"> <input type="radio"
name="R3" value="みかん" onclick="f32=true"></p>
<p>いちご<input type="radio" name="R1" value="いちご"
onclick="f13=true"> <input type="radio" name="R2"
value="いちご" onclick="f23=true"> <input type="radio"
name="R3" value="いちご" onclick="f33=true"></p>
<p>左から順に1位・2位・3位と考えてください。</p>
<p><input type="submit" name="B1" value="送信"
 onclick="return incheck()"> </p>
</form>

こんなのです。よろしくおねがいします。。。。(ちゃんと動くかな???)
投稿日時 - 2002-02-01 19:18:58


  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

チェックが外れた時に、変数をfalseにしてないのが原因、というのは madman さんの回答の通りですね。 ラジオボタン1個ごとに変数を作って真偽値で判断されてますが、1位は今何で、2位は何で、ということを管理した方が、プログラムがすっきりしますよ。 以下、参考程度に # スクリプト部 <SCRIPT><!-- f1 = f2 = f3 = 0; RINGO = 1 ...続きを読む
チェックが外れた時に、変数をfalseにしてないのが原因、というのは madman さんの回答の通りですね。

ラジオボタン1個ごとに変数を作って真偽値で判断されてますが、1位は今何で、2位は何で、ということを管理した方が、プログラムがすっきりしますよ。
以下、参考程度に

# スクリプト部
<SCRIPT><!--
f1 = f2 = f3 = 0;
RINGO = 1;
MIKAN = 2;
ITIGO = 3;

// 入力ミスの判別
function incheck() {
  var err = '';
  err += fcheck(RINGO, "りんご", err);
  err += fcheck(MIKAN, "みかん", err);
  err += fcheck(ITIGO, "いちご", err);
  if (err) {
    alert(err + "が選択されていません。");
    return false;
  }
  return true;
}
// くだものの選択チェック
function fcheck(code, name, err) {
  if (f1 != code && f2 != code && f3 != code)
    return (err ? 'と' : '') + name;
  return '';
}
//--></SCRIPT>

# BODY部
<P>
 りんご
 <INPUT type="radio" name="R1" value="りんご" onclick="f1=RINGO">
 <INPUT type="radio" name="R2" value="りんご" onclick="f2=RINGO">
 <INPUT type="radio" name="R3" value="りんご" onclick="f3=RINGO">
</P>
<P>
 みかん
 <INPUT type="radio" name="R1" value="みかん" onclick="f1=MIKAN">
 <INPUT type="radio" name="R2" value="みかん" onclick="f2=MIKAN">
 <INPUT type="radio" name="R3" value="みかん" onclick="f3=MIKAN">
</P>
<P>
 いちご
 <INPUT type="radio" name="R1" value="いちご" onclick="f1=ITIGO">
 <INPUT type="radio" name="R2" value="いちご" onclick="f2=ITIGO">
 <INPUT type="radio" name="R3" value="いちご" onclick="f3=ITIGO">
</P>

ちなみに、送信ボタンの onClick での入力チェックは不要です。
送信ボタンを押しても、FORM の onSubmit が動いて、チェックをしてくれます。
お礼コメント
yukiko5

お礼率 78% (132/169)

ありがとうございました。
せっかく私にあったJavaさんを書いていただいたのですが、
まだJavaを始めて1週間の私にはちょっと難しかったです。
今回はmadmanさんの方を参考にさせていただきますが、
今後の課題としてleazさんのがわかるようになりたいです。
ありがとうございました
投稿日時 - 2002-02-04 11:20:37
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


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

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ