0

私は次のフォームを持っています:

<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Choose</title>
  <script type="javascript/text">

    function ischecked(){
        var check = document.getElementsByTagName( 'input' );
        for( var i = 0; i < check.length; i++ ){
        if( check[ i ].type == 'radio' && check[ i ].checked ){
            return true;
          }
        }
        return false;
    }

  </script>
</head>

<body>
  <form method="post" enctype="application/x-www-form-urlencoded" onsubmit="ischecked();">
    <h1>Choose</h1>

    <p><input type="radio" name="choose" value="psychology"><font size="5" color="#0033CC">Instant Psychology</font><br>
    <br>
    <input type="radio" name="choose" value="geography"><font size="5" color="#CC0000">Instant Geography</font><br>
    <br>
    <input type="radio" name="choose" value="gastronomy"><font size="5" color="#660033">Instant Gastronomy</font><br>
    <br>
    <input type="submit" name="Submit" value="Go"></p>
  </form>


</body><link rel="stylesheet" type="text/css" href="data:text/css,"></html>

フォームを送信する前に、ラジオ ボタンの 1 つがチェックされていることを確認したかったのです。ただし、機能せず、とにかくフォームが送信されます。ここで何が間違っていますか?

4

2 に答える 2

5

returnインライン イベント ハンドラから関数の結果を取得する必要があります。

于 2012-10-25T17:46:36.697 に答える
1

検証関数で返された値を属性値で直接確認する必要があります。つまり、HTML フォーム宣言で

<form method="post" enctype="application/x-www-form-urlencoded" onsubmit="ischecked();">

あなたは書くべきです:

onsubmit="return ischecked();"

それ以外の:

onsubmit="ischecked();"
于 2012-10-25T17:51:30.690 に答える