【发布时间】:2014-09-25 17:04:52
【问题描述】:
我仍在为 Parsley 和半验证的相同问题而苦苦挣扎。 我有一个包含 2 类字段的表单
- “联系信息”(17 个字段)
- “公司信息”(5 个字段)
联系信息字段为必填项。 对于“公司信息字段”,用户只有在他有公司时才必须回答。 因此,一个名为“jform[company]”的单选按钮可以回答“你有公司吗”这个问题。
- 如果答案是“否” - 我想应用半验证(只需 联系信息字段)
- 如果答案是“是” - 我想应用完整验证(联系信息字段和公司信息字段)
这是我的代码: (它受到官方文档中的示例的极大启发: http://parsleyjs.org/doc/examples/events.html)
$('#adminForm').parsley().subscribe('parsley:form:validate', function (formInstance) {
if (formInstance.isValid('infos'))
{
if ($("input[name='jform[company]']:checked").val() == 1)
{
if (formInstance.isValid('comp') )
{
alert("Parsley - Full validation : OK");
return true;
}
else
{
alert("Parsley - Full validation : Fail");
formInstance.submitEvent.preventDefault();
}
}
else
{
alert("Parsley - Semi validation : OK");
return true;
}
}
else
{
alert("Parsley - Semi validation : Fail");
formInstance.submitEvent.preventDefault();
}
});
我的问题是表单的提交只发生在完整的验证中。 当我对问题回答否并正确填写联系信息时,消息 显示“Parsley - 半验证:OK”,但未提交表单!
你有一个可能的解释吗? 非常感谢
【问题讨论】:
-
您的上一个问题 (stackoverflow.com/questions/26002630/…) 有什么问题?如果您将警报更改为
return true,它将在正确填写字段后提交表单。 -
你好,米尔兹。不幸的是,提交不起作用。执行代码是因为我到达了这一点(显示了消息),但是 return true 行没有提交数据(没有发生任何事情)。在我之前关于 jsfiddle 的示例的帖子中,我没有测试表单的提交,只是对块的条件验证。我知道这很奇怪......我不明白为什么“回归真实”;不会触发表单的提交。
标签: javascript jquery parsley.js