2012-10-25 97 views
0

我有以下形式:检查之前提交表单 - JavaScript的

<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

的onsubmit = “返回器isChecked();” – Samson

回答

1

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

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

你应该写:的

onsubmit="return ischecked();" 

代替:

onsubmit="ischecked();" 
5

您需要return函数的结果来自内联事件处理程序。

+1

你能否给我更多的细节? – cybertextron