Parsley.js对输入元素进行分组

时间:2014-03-12 15:09:45

标签: jquery validation parsley.js

是否有任何方法可以对输入进行分组以进行验证,并且只为所有输入显示一条错误消息?我需要类似于" data-parsley-multiple"对于复选框和无线电。

3 个答案:

答案 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();
         ...
    }
});