Javascript验证程序出现问题

Javascript验证程序出现问题,javascript,Javascript,我试图创建一个简单的复选框和按钮,以验证用户是否已阅读TOS。由于某种原因,我的代码不起作用。页面加载,但按下按钮没有预期效果。Firebug说我是无错误的,所以我觉得我误解了某些东西是如何工作的。谁能解释一下我做错了什么?我对Javascript还是相当陌生的 <html> <head> <script language="javascript" type="text/javascript"> function validateForm() { if

我试图创建一个简单的复选框和按钮,以验证用户是否已阅读TOS。由于某种原因,我的代码不起作用。页面加载,但按下按钮没有预期效果。Firebug说我是无错误的,所以我觉得我误解了某些东西是如何工作的。谁能解释一下我做错了什么?我对Javascript还是相当陌生的

<html>
<head>
<script language="javascript" type="text/javascript">
function validateForm()
{
    if(document.getElementById("TOSbox").checked)
    {
       window.location.href = "/give.html";
    }
    else
    {
        document.getElementById("TOSWarning").innerHTML="You need to agree to the TOS first.";
    }
}
</script>
</head>
<body>
    This is where the TOS goes.
    <br>
    <form name="TOSform" action="">
        <input type="checkbox" name="TOSbox" value="checked">I have read and agree to the Terms of Service.<br>
        <button onclick="validateForm()">I Agree</button> 
    </form>
    <p id="TOSWarning"></p>
</body>
</html>

函数validateForm()
{
if(document.getElementById(“TOSbox”).checked)
{
window.location.href=“/give.html”;
}
其他的
{
document.getElementById(“TOSWarning”).innerHTML=“您需要首先同意TOS。”;
}
}
这就是TOS的目的地。

我已阅读并同意服务条款。
我同意


您需要返回
false
以防止默认提交行为

<button onclick="validateForm(); return false;">I Agree</button> 
我同意

您需要返回
false
以防止默认提交行为

<button onclick="validateForm(); return false;">I Agree</button> 
我同意
首先,您的
需要一个,以避免提交表单(或者在表单无效时返回false)。另外,您使用的是
getElementById
,但是您的复选框没有id,只有一个名称。尝试:

<input type="checkbox" name="TOSBox" id="TOSbox" value="checked">I have read and agree to the Terms of Service.<br>
<button type="button" onclick="validateForm();">I Agree</button> 
我已阅读并同意服务条款。
我同意
首先,您的
需要一个,以避免提交表单(或者在表单无效时返回false)。另外,您使用的是
getElementById
,但是您的复选框没有id,只有一个名称。尝试:

<input type="checkbox" name="TOSBox" id="TOSbox" value="checked">I have read and agree to the Terms of Service.<br>
<button type="button" onclick="validateForm();">I Agree</button> 
我已阅读并同意服务条款。
我同意
相关:

如果使用按钮时表单中没有类型,则其默认类型为submit

考虑使用
以避免在按下按钮时过账表单

另外,在您正在使用的javascript中,您正在寻找一个
id=“TOSbox”
,但您的复选框实际上只使用
name=“TOSbox”
。您可能应该将id添加到其中

<input type="checkbox" id="TOSbox" name="TOSbox" value="checked">

相关:

如果使用按钮时表单中没有类型,则其默认类型为submit

考虑使用
以避免在按下按钮时过账表单

另外,在您正在使用的javascript中,您正在寻找一个
id=“TOSbox”
,但您的复选框实际上只使用
name=“TOSbox”
。您可能应该将id添加到其中

<input type="checkbox" id="TOSbox" name="TOSbox" value="checked">


确保防止表单的默认行为。“我正在尝试创建一个简单的复选框和按钮,用于验证用户是否已阅读TOS”,这很简单!答案是:没有。根本不需要查看复选框。@Elclandrs代码看起来像OP知道如何防止默认行为吗?@Kay:也许不是,这就是Google的目的,现在OP得到了搜索词“防止默认表单javascript”,并给出了数千个答案。确保防止表单的默认行为。“我正在尝试创建一个简单的复选框和按钮来验证用户是否阅读了TOS”这很简单!答案是:没有,他们没有。根本不需要查看复选框。@Elclars代码看起来像OP知道如何防止默认行为吗?@Kay:可能不是,这就是Google的目的,现在OP有了搜索词”“防止默认表单javascript”和大量答案。