【问题标题】:How to set a trigger in Parsley for all input fields via Javascript?如何通过 Javascript 在 Parsley 中为所有输入字段设置触发器?
【发布时间】:2017-12-07 14:40:20
【问题描述】:

使用 ParsleyJs,我想将每个输入字段的触发器设置为 focusout

我可以通过 html 中的数据属性进行设置,如下所示:

<input type="text" name="my-input
       data-parsley-trigger="focusout"
       required>

为了在 Javascript 中做同样的事情,我尝试了这个:

const formInstance = $('#myForm').parsley();
const inputs = $('input').parsley();

for (let input of inputs) {
  input.options.trigger = 'focusout';
}

但它没有添加触发器。

【问题讨论】:

  • The Parsley.js documentation 非常清楚地表明您通过$("selector for the form").parsley(options); 设置选项。所以大概是$("selector for the form containing these inputs").parsley({trigger: "focusout"})(虽然我当然不会关闭input,所以也许是"focusout input")。你试过吗?
  • 这不是一个普通的 jQuery 对象,它是一个 parsley 实例。 Parsley 文档显示了这个例子:var field = $('input').parsley();console.log(field.options.maxlength); // Shows that maxlength is 42
  • 我意识到这一点并几乎立即编辑了评论。再次:您是否尝试根据文档更改选项? (注意:对投票的评论永远不会有用。)

标签: javascript validation parsley.js


【解决方案1】:

您是对的,根据他们的文档,您的代码似乎应该可以工作。

目前,您可以在致电parsley() 时传递选项。

const options = {
    trigger: 'focusout'
};

const inputs = $('input').parsley(options);

并删除循环。

【讨论】:

  • 我花了一段时间,但我发现了问题所在。我编写了添加data-form-validate 属性的表单。在文档中有一条警告说 Do not add data-parsley-validate to your forms ... Once a form or field instance is bound by Parsley, doing $('#form').parsley(options); will update the existing options but not replace them. Not sure what they mean by “update the existing options”,但是删除该属性解决了问题
猜你喜欢
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 2015-10-18
  • 2011-08-17
相关资源
最近更新 更多