我有一些标签最初在文档加载时隐藏。我有一个“添加行”按钮,它将取消隐藏一行表单元素。我还有删除行按钮,它将隐藏给定的表单元素行。
Parsley 验证对于加载文档时存在且可见的输入标记非常有效,但验证不适用于由于 javascript 事件而显示的输入标记。
我尝试过调用:
$('form').parsley();
在“添加行”按钮中单击事件处理程序,但似乎没有什么区别。
我需要做一些特别的事情才能让欧芹意识到这些新可见的表单元素吗?
最佳答案
当您添加或删除输入标签时,您需要销毁欧芹,以便销毁 ParsleyForm 对象。之后,您需要再次绑定(bind) Parsley,以便将验证应用于表单中的所有可见输入。您可以通过以下方式执行此操作:
$('form').parsley().destroy();
$('form').parsley();
或者,您可以添加/删除特定字段的验证,如下所示:
// add validation to #fieldId
$('#fieldId').parsley();
// remove validation from #fieldId
$('#fieldId').parsley().destroy();
最佳选择取决于您拥有的字段数量。如果表单中有大量字段,Parlsey 将花费一些时间来销毁并重新创建对象。但是,这是更简单的选项(因为您不需要了解有关添加或删除的字段的任何信息)。
请注意,当您将 Parlsey 绑定(bind)到表单 ($('form').parlsey()
) 时,它将为表单创建一个 ParsleyForm
对象,如下所示许多 ParsleyField
对象作为表单中的字段。
关于javascript - 让 Parsley.js 识别未隐藏的表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27712408/