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>

我想确保在提交表单之前已经检查了其中一个单选按钮。但是,它不起作用,并且无论如何都提交了表单。我在这里做错了什么?

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 回答