我创建了一个模块,其中2个日期就像发货日期和交货日期一样。 我需要对交货日期进行验证,就像用户在发货日期之前输入日期一样,它会抛出错误。 请帮帮我。
答案 0 :(得分:0)
在/ custom / modules // clients / base / views / record /中创建一个文件'record.js'。在该文件中,您可以添加自定义验证。
您可以使用的一些代码是:
({
extendsFrom: 'YourModuleRecordView',
initialize: function (options) {
app.error.errorName2Keys['date_error'] = 'The Delivery date is before the shipdate.';
this._super('initialize', [options]);
this.model.addValidationTask('check_date', _.bind(this._doValidateDate, this));
},
_doValidateDate: function(fields, errors, callback) {
if (strtotime(this.model.get('shipdate')) > strtotime(this.model.get('deliverydate'))) {
errors['deliverydate'] = errors['deliverydate'] || {};
errors['deliverydate'].date_error = true;
}
callback(null, fields, errors);
}
});
不要忘记更改您命名的字段名称! 此结果仅适用于编辑模式。要将此验证添加到创建模式,请将文件'create_actions.js'添加到/ custom / modules // clients / base / views / create_actions /
在'create_actions.js'中输入以下代码:
({
extendsFrom: 'CreateActionsView',
initialize: function (options) {
app.error.errorName2Keys['date_error'] = 'The Delivery date is before the shipdate.';
this._super('initialize', [options]);
this.model.addValidationTask('check_date', _.bind(this._doValidateDate, this));
},
_doValidateDate: function(fields, errors, callback) {
if (strtotime(this.model.get('shipdate')) > strtotime(this.model.get('deliverydate'))) {
errors['deliverydate'] = errors['deliverydate'] || {};
errors['deliverydate'].date_error = true;
}
callback(null, fields, errors);
}
});
使用正确的代码添加此文件时执行修复/重建。 您可以根据自己的需要自定义此代码。