プロが教えるわが家の防犯対策術!

申し訳ありません。
お詳しい方に教えていただきたいのです。
以前、こちらでご質問して回答いただいたのですが、
問題がありまして、ラジオボタンのyes,noでyesを選択したら、フォームページが現れるという仕組みを教わったのですが、
フォームの方はjavascriptを仕組み、例えば記入していない欄をそのままにして送信ボタンを押すと、赤い文字でエラー表示するフォームを作っているのです。エラーの状態で送信ボタンを押すと、最初のラジオボタンのyes,noに戻ってしまい、フォームがたたんだ状態になるそうなのです。
それで、いきなりフォームがたたまれて最初の状態に戻るのではなく、フォームにエラーが表示されるようにしたいのです。
yes.noをせんたくするjavascriptに問題があるのではないかと思っているのですが。。
もしおわかりになるかたがいらっしゃいましたらおしえていただけませんでしょうか。
よろしくお願い致します。
以下は教えていただいたjavascriptです。
フォームは簡単なものになっているので、javascriptは入っておりません。

==== 動作サンプル
http://hppg.moe.hm/okwave/qa/q7294891/

==== ソース
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>【OKWave回答サンプル集】ラジオボタンによる表示、非表示について</title>
<link rel="stylesheet" href="/okwave/qa/css/basic.css" type="text/css" />
<script type="text/javascript">
var dispArea;
var dispAreaMsg;
window.onload = function() {
dispArea =
document.getElementById('disparea');
dispAreaMsg =
document.getElementById('dispareamsg');
}

function change ( value ) {
if ( value == 'yes' ) {
dispArea.style.display = 'block';
dispAreaMsg.style.display = 'none';
} else if ( value == 'no' ) {
dispArea.style.display = 'none';
dispAreaMsg.style.display = 'block';
}
}
</script>
<style type="text/css">
#disparea { display:none; }
#dispareamsg { display:none; }
</style>
</head>
<body>
<h1>ラジオボタンによる表示、非表示について</h1>
<form name="test">
<input type="radio" name="conf" value="yes" onclick="change(this.value);"/>はい
<input type="radio" name="conf" value="no" onclick="change(this.value);" />いいえ
<p id="disparea">
<input type="button" value="応募" />
</p>
<p id="dispareamsg">
応募できません。
</p>
</form>
</body>
</html>

A 回答 (1件)

ご提示のものでは、ご質問の現象を確認できません。


単にスクリプトで表示/非表示を行っているだけのソースですね。


>例えば記入していない欄をそのままにして送信ボタンを押すと、
>赤い文字でエラー表示するフォームを作っているのです
そのチェックは、スクリプトでおこなっているのではないのでしょうか?
エラーがあったら送信ができないようにしていますか?


>の状態で送信ボタンを押すと、最初のラジオボタンのyes,noに
>戻ってしまい、フォームがたたんだ状態になるそうなのです
察するに、それは単に送信されてしまってリロードされているってことではないでしょうか?
submit時の処理や送信先からのレスポンスはどのようになっているのでしょうか?

そもそもエラーチェックはsubmit時に実行されるようになっているのではないのですか?
それなら、送信ボタン(submitボタン)を何回押しても、エラーチェックがされるだけのはずですが…?
    • good
    • 0
この回答へのお礼

早急にお答えいただきありがとうございます。
私の知識不足で申し訳ありません。
再度、担当にきいてみたいと思います。

ありがとうございました。

お礼日時:2012/03/30 22:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!