【发布时间】:2017-09-27 16:14:27
【问题描述】:
我有一个模态表单,我在 Parsley 成功验证后尝试使用 ajax 手动发布。当模式打开时,我首先在表单上初始化 Parsley:
modalLaunchers.createTaskFormValidation = $(document.getElementById('create-task-form')).parsley(parsleyOptions);
然后提交表单时,我有以下代码:
modalLaunchers.createTaskFormValidation.validate();
if (modalLaunchers.createTaskFormValidation.isValid()) {
// do ajax POST
}
如果存在不正确的字段,则会正确突出显示这些字段。但是,如果随后更正了这些字段并重新提交了表单,则会收到以下错误:
Uncaught Validator `undefined` does not handle multiple values
validate() 和 isValid() 都会抛出该错误。
显然,我希望在再次按下提交时重新验证表单,如果它有效,则继续 POST。但是,由于引发了该错误,因此不会继续进行。我的 Parsely 选项如下:
const parsleyOptions = {
// errorsWrapper: '',
errorTemplate: '<span class="error-msg"></span>',
// successClass: 'has-success',
errorClass: 'has-error',
classHandler: (el) => {
console.log(el.$element.closest('div.form-group'));
return el.$element.closest('div.form-group');
},
excluded: 'input.select2-search__field',
};
有什么建议吗?非常感谢
【问题讨论】:
-
如果没有
parsleyOptions的内容,以及对addValidator的调用,是无法分辨的。 专业提示:总是发布一个最小的实例。 -
我已经对其进行了更新,现在包含了这些选项。没有对 addValidator 的调用,一切都是通过数据属性完成的。谢谢。
-
可能是对多值输入(如选择框)的无效验证?
标签: javascript validation parsley.js