如何验证sugarcrm中的日期字段?

时间:2014-07-19 09:09:11

标签: validation sugarcrm

我创建了一个模块,其中2个日期就像发货日期和交货日期一样。 我需要对交货日期进行验证,就像用户在发货日期之前输入日期一样,它会抛出错误。 请帮帮我。

1 个答案:

答案 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);
    }
});

使用正确的代码添加此文件时执行修复/重建。 您可以根据自己的需要自定义此代码。