是否有任何方法可以对输入进行分组以进行验证,并且只为所有输入显示一条错误消息?我需要类似于" data-parsley-multiple"对于复选框和无线电。
答案 0 :(得分:1)
不,没有。目前,您必须使用Parsley事件,就像在此示例中所做的那样:http://parsleyjs.org/doc/examples/events.html
答案 1 :(得分:1)
如果您使用常见的错误容器,可以使用一些CSS相当巧妙地完成此操作。
HTML:
<div id="error-container" class="parsely-single-error"></div>
<input name="field1" data-parsley-errors-container="#error-container" required>
<input name="field2" data-parsley-errors-container="#error-container" required>
<input name="field3" data-parsley-errors-container="#error-container" required>
CSS:
.parsely-single-error .filled ~ .filled {
display: none;
}
CSS读取,“隐藏错误容器中具有”已填充“类的所有子元素,并且在另一个具有”已填充“类的元素之后。这样可以隐藏错误容器中除第一个“已填充”错误之外的所有错误。
作为参考,解析时错误容器在填充时如下所示:
<div class="parsely-single-error" id="error_container">
<span class="help-block filled" id="parsley-id-5">
<div class="parsley-required">This value is required.</div>
</span>
<span class="help-block" id="parsley-id-7"></span>
<span class="help-block filled" id="parsley-id-9">
<div class="parsley-required">This value is required.</div>
</span>
<span class="help-block filled" id="parsley-id-11">
<div class="parsley-required">This value is required.</div>
</span>
<span class="help-block" id="parsley-id-13"></span>
</div>
答案 2 :(得分:0)
@guillaumepotier,当我尝试使用该示例时,我得到'Uncaught TypeError:无法调用方法'preventDefault'的undefined'。
HTML:
<form id="userPanel">
...
</form>
JS:
parsleyForm = $('#userPanel').parsley({
...
});
parsleyForm.subscribe('parsley:form:validate', function (formInstance) {
if (formInstance.isValid('months', true)) {
...
}
else {
formInstance.submitEvent.preventDefault();
...
}
});