如何将必填字段转换为 SuiteCRM 的可选字段?

How to convert a required field into optional for SuiteCRM?

我有一个字段-A(下拉)和一个字段-B(文本字段),取决于字段-A的值,字段-B是否可选,例如:

如果字段-A的值为1;然后需要字段 B,为此我使用 SuiteCRM 带来的 JS 函数:addToValidate

但是如果字段-A 的值为 0 我应该将字段-B 转换为可选

对于最后一个案例,我可以使用 SuiteCRM 的什么 JS 功能?

谢谢

如果您想动态更改是否需要某个字段,请查看 Dependency Actions

它们允许您根据自定义 Sugar Logic 公式的值自动切换给定目标字段的 required-state (true/false)。

根据链接示例和您的示例,它看起来像这样:

./custom/Extension/modules/<module>/Ext/Dependencies/fieldB_required.php

<?php
    $dependencies['<module>']['fieldB_required'] = array(
        'hooks' => array("edit"),
        //Trigger formula for the dependency. Defaults to 'true'.
        'trigger' => 'true',
        'triggerFields' => array('fieldA'),
        'onload' => true,
        //Actions is a list of actions to fire when the trigger is true
        'actions' => array(
            array(
                'name' => 'SetRequired', //Action type
                //The parameters passed in depend on the action type
                'params' => array(
                    'target' => 'fieldB',
                    'label'  => '<field label>', //normally <field>_label
                    'value' => 'equal($fieldA, 1)', //Formula
                ),
            ),
        ),
    );

fieldA 是字段,当更改时,触发s 公式的 re-evaluation 并将设置 required target 字段的状态 fieldBequal($fieldA, 1).

的值

备注:

  • 虽然依赖操作是在 PHP 文件中定义的,但您提供的公式通常在 client/javascript-side 事物上执行,因此您无需编写自定义 javascript代码。
  • 这是 SugarCRM 的一个功能,但它已经很老了,所以希望 SuiteCRM 仍然支持它。