Meteor Autoform validateForm忽略了唯一的

时间:2017-12-07 12:58:40

标签: meteor meteor-autoform simple-schema

方法AutoForm.validateForm(formID)返回true,尽管SimpleSchema中的unique为true且输入了重复值。似乎没有其他人有这个问题,所以我想知道我做错了什么。这是完整的示例代码:

公共/ collections.js

import SimpleSchema from 'simpl-schema';
SimpleSchema.extendOptions(['autoform']);
const afCollection = {};
Meteor.isClient && Template.registerHelper('afCollection', afCollection);
checkTable = afCollection.checkTable = new Meteor.Collection('checkTable');
// Meteor.isServer && checkTable._dropCollection();

checkTable.attachSchema(new SimpleSchema({
  checkValue: {
    type: String,
    index:true,
    unique:true,
    optional:false
  }
}, { tracker: Tracker }));

的客户机/ maintenance.js

AutoForm.debug();
Template.Maintenance.events({
  'click .save' () {
    if (AutoForm.validateForm("newOne")) {
      $('form#newOne').submit() }
    else {
      console.log("should see error message now")
    };
    console.log("Saved:",checkTable.find().fetch())
  }
}); 

的客户机/ maintenance.html

<template name="Maintenance">
  <a class='save' href=#>Save</a>
  {{#autoForm id='newOne' type="insert" collection=afCollection.checkTable autosave=false }}
    {{> afQuickField name="checkValue"}}
  {{/autoForm}}
</template>

软件包:

aldeed:autoform@6.2.0
aldeed:collection2-core@2.0.4
aldeed:schema-index@2.1.1

validateForm在输入为空时正常工作。如果违反了unique,则validateForm返回true。当您调用.submit()时,模板中的错误消息会正确显示,您可以使用AutoForm.hook(可能未经测试)对错误做出反应。

不幸的是,这对我的情况没有帮助,因为点击“保存”会一次提交几个表格。在提交第一个表单之前,我必须确保所有表单都没有错误。

我错过了什么?

0 个答案:

没有答案