是什么导致onSubmit =“return checkTheForm()”没有被执行?

时间:2014-05-10 12:51:25

标签: javascript jquery html forms validation

我知道我知道;互联网上有关于此问题的a lot of posts。我知道我需要使用<form action="index.html" onSubmit="return checkTheForm()">但我不明白为什么我写的代码似乎没有用。

在我的HTML中,我得到了以下内容:

<form method="post" action="/index" onsubmit="return validateBuyForm();">
    <input id="agreeToTerms" name="agreeToTerms" type="checkbox" /> I agree<br />
    <input value="Buy that stuff!!" id="pay" type="submit" />
</form>

在我的js中我得到了这个:

function validateBuyForm() {
    alert('we are validating!!');
    return false;
}

JSFiddle:http://jsfiddle.net/zx2rx/

我的问题是我从未看过警报,即使我认为我已经在互联网上阅读了所有教程。有没有人对我在这里做错了什么有获胜的提示?

欢迎所有提示!

1 个答案:

答案 0 :(得分:2)

这个问题只是一个JsFiddle问题。在JsFiddle中声明的函数会自动包装在它们自己的作用域中,因此它们不是全局函数,因此对onsubmit属性中声明的代码不可见。如果强制该函数为全局函数,它将起作用:

window.validateBuyForm = function() {
    alert('we are validating!!');
    return false;
}

Update fiddle