Parsley.js忽略了`trigger`值

时间:2015-01-29 22:51:55

标签: javascript validation backbone.js parsley.js

我正在使用parsley来验证Backbone应用程序中的表单,并且只希望在我调用form.validate()时运行验证。这是因为我已经在我的视图中处理了很多事件逻辑,并希望能够在提交时进行验证。根据{{​​3}}格式,默认情况下应禁用输入事件。但是,我没有发生这种情况,并且在我第一次调用$('#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
}

有没有人对为什么会发生这种情况有任何想法?

1 个答案:

答案 0 :(得分:0)

trigger选项是在change首次失败后绑定的manageFailingFieldTrigger的补充。

目前非常糟糕的解决方法,将触发器设置为不存在但包含“更改”字样的事件,例如“忽略更改”。我认为这样可行,但对未来没有任何承诺。

最好是提出公关,也许将trigger=null视为特殊价值?