在提交之前检查表单 - JavaScript

时间:2012-10-25 17:45:45

标签: javascript html

我有以下表格:

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

我想确保在提交表单之前检查了其中一个单选按钮。但是,它不起作用,并且表单仍然是提交的。我在这里做错了什么?

2 个答案:

答案 0 :(得分:5)

您需要从内联事件处理程序return {{1}}函数的结果。

答案 1 :(得分:1)

您必须直接在属性值中检查验证函数中返回的值。也就是说,在HTML表单声明中

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

你应该写:

onsubmit="return ischecked();"

而不是:

onsubmit="ischecked();"