0

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

阻止表单发送的代码是:

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

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

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

提前致谢。你可以在这里看到一个工作演示。

4

2 回答 2

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();
}
于 2012-07-25T14:53:02.270 回答
-1

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

if (event && event.preventDefault) {
    event.preventDefault();
} else if (event) {
    event.returnValue = false;
}
于 2012-07-26T19:44:03.753 回答