私はStart Date to be Greater than End Dateリンクをたどりました。以下はSimpleSchema
コードです。Autoform 6.2.0のSimpleSchemaカスタムエラーメッセージは動作しません
import { Mongo } from 'meteor/mongo';
import SimpleSchema from 'simpl-schema';
import MessageBox from 'message-box';
SimpleSchema.extendOptions(['autoform']);
MessageBox.defaults({
en: {
startDateMustBeSmaller: "From Date must be greater than to Date"
}
});
export const Appointments = new Mongo.Collection('Appointments');
Appointments.allow({
insert: function(userId, doc){ return !!userId; },
update: function(userId, doc){ return !!userId; },
remove: function(userId, doc){ return !!userId; }
});
AppointmentsSchema = new SimpleSchema({
"fromDate": {
type: Date,
label: "From Date",
autoform: {
afFieldInput: {
type: "text",
}
}
},
"toDate": {
type: Date,
label: "To Date",
autoform: {
afFieldInput: {
type: "text",
}
},
custom: function() {
var start = this.field('fromDate');
var end = this;
if (start.isSet && end.isSet) {
if (moment(end.value).isBefore(start.value)) return "startDateMustBeSmaller";
}
}
}
});
Appointments.attachSchema(AppointmentsSchema);
Template.html
{{#autoForm id='insertAppointmentForm' collection=appointment type="insert" doc=this validation="browser"}}
<fieldset>
<div class="col-sm-6">
{{> afQuickField name='clientId' options=clientsSelect2 select2Options=s2Opts}}
</div>
<div class="col-sm-6">
{{> afQuickField name='otherDetails'}}
</div>
<div class="col-sm-6">
{{> afQuickField name='fromDate'}}
</div>
<div class="col-sm-6">
{{> afQuickField name='toDate'}}
</div>
<div class="col-sm-6">
{{> afQuickField name='reason'}}
</div>
<div class="col-sm-6">
{{> afQuickField name='meetingType'}}
</div>
</fieldset>
<div>
<button type="submit" class="btn btn-sm bg-olive margin">
<span class="glyphicon glyphicon-ok"></span> Create
</button>
<button type="submit" class="btn btn-sm bg-navy margin reset">
<span class="glyphicon glyphicon-refresh"></span> Reset
</button>
<a href="/user/view-appointments" class="btn btn-sm bg-orange margin pull-right" role="button">
<span class="glyphicon glyphicon-eye-open"></span>
View Appointments
</a>
</div>
{{/autoForm}}
私は上記のスキーマを使用して実行しようとすると、フォームが提出されていないされません、どちらもクライアントまたはサーバがエラーを持っています。
私はまた、SimpleSchema.messages({})
を試してみましたSimpleSchema.messageBox.messages({})
が、私はmethod not found error.
問題を得る:私は終了日より前の場合、開始日を確認したいが。上記のコードは機能しません。
注:私は
aldeed:[email protected]
と流星1.5.0を使用しています、"simpl-schema": "^0.3.2"
まだ動作しません。ページがハングアップします。サーバーまたはクライアントでエラーは発生しません。 –
@AnkurSoni「ページがハングアップする」とはどういう意味ですか? UIは応答しませんか? – Styx
私は何も起こりません、フォームは正常です、つまり、私はまだ正しいエントリを置くことができ、それは動作します。しかし、間違った日付を入力すると、何も起こりません。 –