我仍在努力解决有关Parsley和半验证的问题。 我有一个包含两类字段的表单
联系信息字段是必填字段。 对于“公司信息字段”,用户只有在拥有公司时才能回答。 因此,一个名为“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();
}
});
我的问题是表单的提交仅用于完整验证。 当我对问题回答“否”并且我填写正确的联系信息时,该消息 “欧芹 - 半验证:确定”会显示,但表单未提交!
你有可能的解释吗? 非常感谢
答案 0 :(得分:0)
好的,我明白了!我明白为什么它不能正常工作但我现在无法纠正它......
事实上,我也使用Parsley.Remote.js进行2次测试:
Parsley.Remote.js似乎阻止了提交“formInstance.isValid()”的结果。换句话说:formInstance.isValid()对远程测试无效。我将继续调查以找到解决方案
答案 1 :(得分:0)
它已经解决了!
正如Milz在这篇文章中所解释的那样: Validate set of fields only if radio button is checked (conditional validation)
问题是由于误解了使用" data-parsley-group"。
关于Parsley.Remote.js," formInstance.isValid"没有回答有关远程测试有效性的问题。但是行为是可以的因为如果远程验证是假的,表单是未提交的,如果是正确的,表单是提交的!