验证失败时无法阻止表单提交

时间:2016-07-12 09:48:00

标签: jquery forms

https://developers.facebook.com/docs/apps/review/prefill

<form method="post" action="forms/post.asp" onsubmit="return validate();">
  <input type="text" name="username" />
  <button type="submit" onclick="validate();">Button</button>
</form>

我已经在其他页面上工作了,但它现在只是在任何事情上都没有工作。有什么建议吗?

$(document).ready(function(){
    function validate() {
        return false;
    }
}

1 个答案:

答案 0 :(得分:3)

从事件属性调用的函数需要在window对象的范围内。要解决您的问题,请将该函数移到jQuery的document.ready处理程序之外:

function validate() {
    return false;
}

$(document).ready(function(){
    // jquery code here...
});

或者,完全删除过时的事件属性,并使用不显眼的JS来附加您的事件。正如您已经在使用jQuery,以下是如何做到这一点:

<form method="post" action="forms/post.asp">
    <input type="text" name="username" />
    <button type="submit">Button</button>
</form>
$(document).ready(function(){
    $('form').submit(function(e) {
        var valid = true;

        // validate your form here...

        if (!valid)
            e.preventDefault(); // stop the submission
    });
});