4

初めて SugarCRM CE を使い始めたところです (バージョン 6.5.15 (ビルド 1083))。新しいフィールドやモジュールを追加する際の使いやすさには感銘を受けましたが、欠けていると思われる不可欠なものが 1 つあります。それは、ユーザー入力の検証です。

たとえば、多くのことを確認したいと思います。

  • 正規表現を使用して、メールアドレスが有効な形式であるかどうかを確認します
  • 郵便番号が存在するかどうかを確認します (おそらく、それを検証するために webswervice 呼び出しを行います)
  • 市民サービス番号が有効かどうかを計算する

スタジオでできると思われる唯一のことは、フィールドを必須にするかどうかだけです。フィールドで検証を実行する標準的な方法はないようです。

グーグルで検索したときに見つけられるのは、次のようなソースコードにハッキングする方法がたくさんあることだけです。 form-submit/ それでも、実際に検証を行う例は見つかりません。

何か足りないだけですか?それとも、これを追加する唯一の方法はソース コードを編集することですか?

4

4 に答える 4

0

遅いことはわかっていますが、まだ誰かがこれを必要としているのかもしれません。

次のように、カスタム JavaScript 検証を vardefs のコールバックとして追加するだけです。

'validation' => 
array (
  'type' => 'callback',
  'callback' => 'function(formname,nameIndex){if($("#" + nameIndex).val()!=999){add_error_style(formname,nameIndex,"Only 999 is allowed!"); return false;}; return true;}',
),

他の場所で十分に文書化されていないため、ここに文書化しました。

https://gunnicom.wordpress.com/2015/09/21/suitecrm-sugarcrm-6-5-add-custom-javascript-field-validation/

于 2015-09-21T12:01:39.203 に答える
-2

次のファイルにカスタム検証コードを追加できます: ./custom/modules/.../clients/base/views/record/record.js

そこに検証コードを追加できます。この例では、アカウントに顧客タイプがある場合に phone_number が空でないかどうかを検証します。

RECORD.JS のコード例:

({
    extendsFrom: 'RecordView',
    initialize: function (options) {
        app.view.invokeParent(this, {type: 'view', name: 'record', method: 'initialize', args:[options]});

        //add validation
        this.model.addValidationTask('check_account_type', _.bind(this._doValidateCheckType, this));
    },
    _doValidateCheckType: function(fields, errors, callback) {
        //validate requirements
        if (this.model.get('account_type') == 'Customer' && _.isEmpty(this.model.get('phone_office')))
        {
            errors['phone_office'] = errors['phone_office'] || {};
            errors['phone_office'].required = true;
        }
        callback(null, fields, errors);
    }
})

修復と再構築を忘れないでください!

完全なドキュメントはここにあります

于 2014-03-17T08:42:34.610 に答える