javascript - 让 Parsley.js 识别未隐藏​​的表单元素

标签 javascript parsley.js

我有一些标签最初在文档加载时隐藏。我有一个“添加行”按钮,它将取消隐藏一行表单元素。我还有删除行按钮,它将隐藏给定的表单元素行。

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/

相关文章:

javascript - 为什么在 HTML 中使用 onClick() 是一种不好的做法?

javascript - 在 WebView 中加载 HTML 文件后执行 JavaScript 指令

javascript - 欧芹验证未运行(即使在纯 html 文件上)

javascript - Parsley 远程验证码验证

html - 使用 Parsley 2.x 和 Bootstrap 3 错误消息范围的错误放置

javascript - 多步形式是到达X步后不进入下一步

javascript - D3.js 替换段落中的文本

javascript - Jquery 根据点击将一个元素的值更改为另一个元素

php - "VIEW FULL SITE"移动站点选项

javascript - Parsley.js 在 Safari 中的奇怪行为