• ベストアンサー

If文を2つ並べると2つ目の文が実行されない。

プログラムの中で*A*のIf文は実行されますが、*B*のIf文は実行されません。 何故でしょうか?教えて下さい。 ちなみに、<中略>の部分にもIf文は同じ様にあります。(内容は違うけど) <SCRIPT language="javascript"><!-- function ka() { ******<中略>****** *A* if (document.fomu.email.value ==""){        alert ("メールアドレスを記入して下さい。");        fomu.email.focus();        return false; } *B* if (document.fomu.email.value.match(/\w+@\w+/){        alert ("正しくメールアドレスを記入して下さい。");        fomu.email.focus();        return false; } ******<中略>******* } //--></SCRIPT>

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

  • ベストアンサー
回答No.5

if (!document.fomu.email.value.match(/\w+@\w+/)) { alert ("正しくメールアドレスを記入して下さい。");

konkon7
質問者

お礼

お返事ありがとうございます。 単純明快でびっくりしました。一瞬どこが違うの?っと疑問でした。 本当に助かりました。

その他の回答 (4)

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.4

>実行されない。 とは、どういうことでしょうか? エラーになるのか、処理がされないのか等々あると思いますが そのままの意味からとらえると、されないわけですから *A*で処理が終わって、*B*の処理が行われていないだけではないですか? エラーなのであれば、No1さんの言われるように文法エラーでしょう。 右カッコ”)”が抜けていると言うより足りません。

konkon7
質問者

お礼

NO.5で回答されたもので解決しました。 ”)”はコピペした時に抜けてしまったようです。 実際にはちゃんとついてました。 アドバイスありがとうございました。

回答No.3

#2ですが if(document.fomu.email.value.match(/\w+@\w+/) == null でした。すみません。

konkon7
質問者

お礼

お返事ありがとうございます。 if(document.fomu.email.value.match(/\w+@\w+/) == null)で 試したところ、実行されました。

回答No.2

if(document.fomu.email.value.match(/\w+@\w+/ == null) とやってみても変わらないですか?

  • tenro-
  • ベストアンサー率32% (23/70)
回答No.1

if (document.fomu.email.value.match(/\w+@\w+/){ ~ )が抜けてるなんてことはないですか? *B* の前で alert(document.fomu.email.value.match(/\w+@\w+/)); なんて入れてみると分かるかもしれません。

konkon7
質問者

お礼

NO.5で回答されたもので解決しました。 ”)”はコピペした時に抜けてしまったようです。 実際にはちゃんとついてました。 アドバイスありがとうございました。

関連するQ&A