方法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(可能未经测试)对错误做出反应。
不幸的是,这对我的情况没有帮助,因为点击“保存”会一次提交几个表格。在提交第一个表单之前,我必须确保所有表单都没有错误。
我错过了什么?