如何添加自定义javascript代码来验证sugarcrm中联系人模块中的字段

时间:2014-03-04 15:56:11

标签: sugarcrm

我希望在sugarcrm中的first_name字段的onblur上创建自定义代码。 代码也应该升级安全。 请帮忙!

2 个答案:

答案 0 :(得分:0)

复制模块/ Contacts / metadata / editviewdefs.php

定制/模块/联系人/元数据/ editviewdefs.php (如果它尚不存在。如果是,请使用现有的)

此文件中的所有更改都是升级安全的。现在打开你的新文件,你会看到一个包含Contacts-module的EditView中所有内容的大数组。 在“templateMeta”数组中添加以下内容,例如,在“form”之后。

'includes'=> array(
    array('file'=>'custom/modules/Contacts/EditView.js'),
),

这包括文件custom / modules / Contacts / EditView.js,您可以在其中自由编写您想要的所有JavaScript!

记得做一个快速修复&完成后重建。

答案 1 :(得分:0)

我不知道您使用的是哪个版本的SugarCRM,但在SugarCRM 7中,以下是有效的:

在/ custom / modules / Contacts / clients / base / views / record /中创建文件'record.js'。在该文件中,您可以添加自定义验证。

您可以使用的一些代码是:

({
    extendsFrom: 'YourModuleRecordView',
    initialize: function (options) {

        app.error.errorName2Keys['field_error'] = 'This is an error message';

        this._super('initialize', [options]);
        this.model.addValidationTask('check_field', _.bind(this._doValidateField, this));
    },
    _doValidateField: function(fields, errors, callback) {
        if (this.model.get('myField') .... ) {
            errors['myField'] = errors['myField'] || {};
            errors['myField'].field_error = true;
        }

        callback(null, fields, errors);
    }
});

不要忘记更改您命名的字段名称! 此结果仅适用于编辑模式。要将此验证添加到创建模式,请将文件'create_actions.js'添加到/ custom / modules / Contacts / clients / base / views / create_actions /

在'create_actions.js'中输入以下代码:

({
    extendsFrom: 'CreateActionsView',
    initialize: function (options) {

        app.error.errorName2Keys['field_error'] = 'Thsis is an error message';

        this._super('initialize', [options]);
        this.model.addValidationTask('check_field', _.bind(this._doValidateField, this));
    },
    _doValidateField: function(fields, errors, callback) {
        if (.....) {
            errors['myField'] = errors['myField'] || {};
            errors['myField'].field_error = true;
        }

        callback(null, fields, errors);
    }
});

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