欧芹.js忽略“触发器”值

Parsley.js ignoring `trigger` value

本文关键字:触发器 js 忽略 欧芹      更新时间:2023-09-26

我正在使用欧芹来验证 Backbone 应用程序中的表单,并且只希望在调用form.validate()时运行验证。这是因为我已经在我的视图中处理了很多事件逻辑,并且只是希望能够在提交时进行验证。根据默认值.js默认情况下应禁用表单输入事件。但是,这对我来说并没有发生,在我第一次打电话后,欧芹实例似乎正在监听$('#form').parsley(options).validate()更改事件。错误按预期显示,但一旦输入中修复了不正确的值,它就会将它们从 DOM 中删除。期望的行为是在下一次.valdate()调用之前不清除它们。

代码如下所示:

// Backbone event handler for `onSubmit`
onFormSubmit: function(ev) {
  var form = $('#form').parsley({
    trigger: false,                 // <-- defined it explicitly for good measure
    errorClass: 'error',            // <-- Custom error class handlers
    successClass: 'success',
    errorsContainer: '#msg-box',
    classHandler: this.classHandler
  })
  if (!form.validate()) {return}
  // ...
  // do submit
}

有没有人知道为什么会发生这种情况?

trigger 选项是对 manageFailingFieldTrigger 中第一次失败后绑定的change的补充。

目前非常黑客的解决方法,将触发器设置为不存在但包含"更改"一词的事件,例如"忽略更改"。我认为这是可行的,但没有对未来的承诺。

最好是提出一个 PR,也许将trigger=null视为一种特殊价值?