【发布时间】:2013-03-22 04:10:28
【问题描述】:
我正在尝试创建一个使用 Parsley.js 进行前端验证并异步提交的表单。该表单名为#contactForm,提交按钮为#sendData,当我在空或无效表单上点击提交时出现错误。我希望看到来自无效表单数据的“错误”警报,但它只是继续出现 Else 条件,并且数据由 contactForm.php 处理。
$(document).ready(function() {
// submit data on click and check if valid
$('#sendData').click(function(e) {
//check if valid with parsley
var valid = $('#contactForm').parsley ( 'validate' );
if ( valid === false )
{
e.preventDefault();
}
else
{
$.post("contactForm.php", $("#contactForm").serialize());
}
});
});
下面的正确解决方案。
【问题讨论】:
-
如果验证结果是布尔值,你的条件应该是
if (!valid)或者if (valid === false)。此外,请考虑将参数e添加到您的点击处理程序并执行e.preventDefault();而不是返回false以取消事件。 -
他们还在their site 上声明您必须从表单中删除
data-validate="parsley"属性以覆盖默认处理。 -
感谢@plalx 的建议我已经从表单属性中删除了 data-validate="parsley" 并更正了布尔值的条件。出于某种原因,我仍然有同样的问题。啊——忘了我。我误读了您的评论并已解决。再次感谢。
标签: jquery parsley.js