parsley.js'失败'在尝试验证复选框时

时间:2017-11-22 21:54:27

标签: validation checkbox parsley.js

我们正在重新设计一个网站,其中一部分重新设计涉及使网站可供屏幕阅读器等访问。我使用的是最新版本(2.8.0)。这里发生了什么 - 对所有文本的验证,我们表单中的select和textarea字段完美运行。为了便于访问,复选框和无线电输入包含在标签中。一组复选框的html如下所示:

<div class="form-group">
    <p id="applicant_type_desc" style="margin-bottom: 6px;"><strong>I am: <span class="text-danger" aria-hidden="true">*</span><span class="sr-only">Required</span></strong> <em class="small">(check all that apply)</em></p>
    <div class="checkbox">
        <label id="applicant_type_patient_desc">
            <input type="hidden" name="applicant_type_patient" id="" value="N">
            <input type="checkbox" name="applicant_type_patient" id="applicant_type_patient" value="Y" {checked_applicant_type_patient} aria-labelledby="applicant_type_desc applicant_type_patient_desc" data-parsley-multiple="type" data-parsley-error-message="Please specify whether you are a patient, relative, employee or other."> 
            A patient
        </label>
    </div>

后跟更多没有错误消息的复选框div,并以for form-group包装器的结束div结束。

如果我加载表单并点击“提交”,则会正确验证所有文本字段。如果我添加&#39; required&#39;到上面的复选框,当提交&#39;单击没有任何反应,表单提交时根本没有验证。

当我尝试根据需要验证单选按钮时,会发生同样的事情。

有一些自定义jQuery和parsley代码创建一个div来保存所有错误消息,并将错误消息转换为字段id的链接,以便屏幕阅读器可以跟随它们并专注于错误的字段。但是imho,这应该对表格验证没有起作用的原因没有影响。

我非常困惑。

仅供参考 - 我尝试使用早期版本(2.0.3)的欧芹并且验证确实有效,尽管我的所有自定义错误处理都被忽略了。

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

事实证明,parsley处理errorswrapper元素的方式与文本,textarea不同,然后选择它对复选框和单选按钮。

text,textarea和select的起始包装元素包含parsley-data-id属性,而checkbox和单选按钮元素包含parsley-data-multiple属性,无论是由parsley生成还是在html中手动输入。

我的代码正在寻找parsley-data-id,当然jquery选择器失败并生成错误。当我们在chrome检查员中查看页面时,一位同事能够为我发现这一点。一旦我看到错误,对表单进行简单的调整:错误事件功能允许一切正常工作。