使用jQuery&提交表单验证

时间:2012-07-25 14:50:02

标签: jquery forms validation submit

我使用validate.js来验证表单。如果表单未验证,则在用户尝试提交表单时会显示一条消息,显示错误。如果用户通过验证,则会弹出成功消息。问题是,表单实际上并不发送/执行操作,因为validate.js阻止了默认行为。

阻止表单发送的代码是:

if (event && event.preventDefault) {
    event.preventDefault();
} else if (event) {
    event.returnValue = false;
}

你可以在这里看到完整的js:http://jsfiddle.net/DBfks/

在我看来,如果表单没有通过验证,上面的代码会阻止表单提交的默认行为,但如果确实如此,那么表单应该提交。它是否正确?关于如何使表单提交INSTEAD以显示成功消息的任何想法(请参阅jsfiddle以了解成功和错误消息如何工作)

提前致谢。您可以看到有效的演示here

2 个答案:

答案 0 :(得分:1)

添加

 $("#myForm").submit();

您要提交表单的位置。

在你的jsFiddle中你得到了这个if / else:

if (errors.length > 0) {
                        SELECTOR_ERRORS.empty();

                        for (var i = 0, errorLength = errors.length; i < errorLength; i++) {
                            SELECTOR_ERRORS.append(errors[i].message + '<br />');
                        }

                        SELECTOR_SUCCESS.css({ display: 'none' });
                        SELECTOR_ERRORS.fadeIn(200);

                    } else {
                        SELECTOR_ERRORS.css({ display: 'none' });
                        SELECTOR_SUCCESS.fadeIn(200);

                    }

(好吧,复制粘贴有点搞砸了!)

因此,如果有任何错误,请将错误添加到错误框并显示它。否则显示你验证了它。但这不是你想要的,你应该在那里提交表格:

else {
    $("#yourform").submit();
}

答案 1 :(得分:-1)

代码无法使用jQuery提交的原因是因为preventDefault方法阻止了jQuery提交表单。解决方法是简单地删除这些行:

if (event && event.preventDefault) {
    event.preventDefault();
} else if (event) {
    event.returnValue = false;
}