Sugarcrm 自定义字段的日期验证-SuiteRM 7.10.4版Sugar 6.5.25版(版本344)

Sugarcrm 自定义字段的日期验证-SuiteRM 7.10.4版Sugar 6.5.25版(版本344),sugarcrm,suitecrm,Sugarcrm,Suitecrm,在我的模块中有两个字段,名为:start_date_c和end_date_c,带有日期数据类型 这些字段不是必填字段,但当我将数据输入到“结束日期”字段时,我希望它不小于“开始日期” 我尝试了以下方法: 但由于我是SuiteRM的新手,我无法找到积极的回应您需要两件事 在要添加逻辑的模块中编辑文件editviewdefs.php。将第一个自定义字段添加到编辑视图时,此字段将自动生成 创建自定义JS逻辑以定义字段何时有效 此逻辑将为您的应用程序添加验证回调 addToValidateCa

在我的模块中有两个字段,名为:start_date_c和end_date_c,带有日期数据类型

这些字段不是必填字段,但当我将数据输入到“结束日期”字段时,我希望它不小于“开始日期”

我尝试了以下方法:

但由于我是SuiteRM的新手,我无法找到积极的回应

您需要两件事

  • 在要添加逻辑的模块中编辑文件editviewdefs.php。将第一个自定义字段添加到编辑视图时,此字段将自动生成
  • 创建自定义JS逻辑以定义字段何时有效
  • 此逻辑将为您的应用程序添加验证回调

     addToValidateCallback(
            'EditView', // Form Name
            'end_date_c', // field name
            'datetime', // Field type
            false, // Is required
            "End date cannot be earlier than start date", // Message
            function() { 
              //WRITE YOUR JS VALIDATION HERE, return true when is valid
            }); 
    
    在editviewdefs.php中找到字段定义,并使用displayParams使suite/sugar为您添加JS

    array (
      'name' => 'end_date_c',
     'displayParams' =>
                 array (
                  'updateCallback' => 'FUNCTIONNAME',
              ),
    ),
    
    如果您已经有一个全局自定义JS(如自定义主题的style.JS文件),则不需要执行最后一步

    编辑:javascript显示程序将无法工作,因此添加了updateCallback选项

    现在,这种验证有两种方式

  • updateCallback将在更改时触发
  • addtoValidateCallback将在保存时触发

  • 这将为您提供足够的灵活性来验证表单。

    简单且线性,请在任何JS文件中尝试以下内容(添加到模块编辑视图中):


    为我工作。
    我在modules/custom\u module/vardefs.php中的字段中添加了以下代码

     'audited' => true,
     'enable_range_search' => true,
    
    并将以下内容添加到开始字段

    'validation' => 
          array (
            'type' => 'isbefore',
            'compareto' => 'enddate',
            'blank' => true,
          ),
    

    不,这对我不起作用。请让我知道我缺少什么我在custom\modules\Users\metadata\editview.dfs中尝试了以下操作我在字段数组'displayParams'=>array('javascript'=>'onblur=>“checkStatusOption(this)”,)下添加了以下代码,并在userEditView.js函数checkStatusOption(e)中添加了以下代码{my_logic}如果您计划允许此字段为空,我最好建议以相同的方式使用AddToValidateBeforeAllowBlank函数
    'validation' => 
          array (
            'type' => 'isbefore',
            'compareto' => 'enddate',
            'blank' => true,
          ),