2

JavaScript 検証コードを使用して簡単なフォームを作成するように依頼されました。フォーム全体を構築し、すべての検証スクリプトが機能していますが、適切なフィールドの横にある Span タグに関連するエラーを表示するように求められました (これまでのようにアラートを表示するのではなく)。

テキスト入力、ラジオ ボタンなどの各要素の横に、以前に入力した適切なエラー テキストを含むスパン タグを配置し、各スパンをスタイルして非表示にするように指示されました。送信ボタンが押されると、スクリプトはテキストを表示するために適切なスパンのスタイルを表示に変更することになっています。このためのコードを作成しましたが、問題は Span エラーが表示されることですが、ほぼ瞬時に非表示の状態に戻ります。これが起こる可能性がある特定の理由はありますか?

これが私のコードの一部です。

HTML:

< input type="checkbox" name="agree"/> < span id="agreeSpan>Error text< /span>

CSS:

span {
color:red;
font-size:small;
visibility:hidden;
}

そして JavaScript:

   function validateAgreement()
    {

    var agreeBox = document.registration.agree;
    var agreeSpan = document.getElementById('agreeSpan');

   if (!agreeBox.checked) {
      agreeSpan.style.visibility = 'visible';
      return false;
    }

明らかな何かが欠けていますか?1 つの特定のスパンをスタイルしようとしていて、一般的なスパン タグのスタイル属性がこの特定のスパンをオーバーライドしている可能性はありますか?

これが初心者の質問である場合は、どうもありがとうございます。私はJSが初めてです:)

4

2 に答える 2

1

送信を停止するには、false を返すだけでは十分ではありません。それはあなたがその関数をどのように呼び出しているかによって異なりますが、これは次のようなものだと思います

<form action='blah' onsubmit='return validateAgreement();'>
 ...
</form>

リターンに注意してください。送信時のハンドラーは false を返す必要があるため、関数が返す値を必ず返す必要があります。やっただけなら...

<form action='blah' onsubmit='validateAgreement();'>
 ...
</form>

その後、フォームは常に送信されます。

于 2012-04-14T07:56:00.673 に答える
0

あなたの HTML コードでは、終了の引用符が抜けてidid="agreeSpan"ます。id="agreeSpan

于 2012-04-14T07:40:44.580 に答える