Sugarcrm 确保两个字段相同

Sugarcrm 确保两个字段相同,sugarcrm,Sugarcrm,嘿,我有一个数据输入模块 我希望在允许保存之前确保两个字段是相同的。如果它们不匹配(类似于网站在提交之前确保电子邮件是相同的),我希望它说“确保这两个字段匹配”,并且在它们匹配之前不保存 我该怎么做?这是唯一阻止我推出这个模块的东西 谢谢 你可以很容易地做到这一点 假设您要确认以下两个字段匹配: username_c 及 在模块目录中创建一个名为force_username_compare.js的javascript文件,并向其中添加以下代码: addToValidateComparison(

嘿,我有一个数据输入模块

我希望在允许保存之前确保两个字段是相同的。如果它们不匹配(类似于网站在提交之前确保电子邮件是相同的),我希望它说“确保这两个字段匹配”,并且在它们匹配之前不保存

我该怎么做?这是唯一阻止我推出这个模块的东西


谢谢

你可以很容易地做到这一点

假设您要确认以下两个字段匹配:

username_c

在模块目录中创建一个名为force_username_compare.js的javascript文件,并向其中添加以下代码:

addToValidateComparison('EditView', 'username_c', '', true, 'Compare Test', 'username_compare_c');
然后,您需要从模块的view.edit中吐出js。假设您没有自定义view.edit设置,请创建以下文件并添加此代码: 自定义/modules/YOUR_MODULE_NAME/views/view.edit.php

class YOUR_MODULE_NAMEViewEdit extends ViewEdit
{
    public function display()
    {
        // make sure it works in the subpanel too
        $this->useForSubpanel = true;

        // definitely need to call the parent method
        parent::display();

        // make sure to echo this out AFTER parent::display() call
        echo '<script type="text/javascript" src="custom/modules/YOUR_MODULE_NAME/force_username_compare.js"></script>';
    }
}
为您的模块命名视图编辑扩展了视图编辑
{
公共功能显示()
{
//确保它也在子面板中工作
$this->useForSubpanel=true;
//肯定需要调用父方法
父::显示();
//确保在调用parent::display()后回显此内容
回声';
}
}
addToValidateComparison将为您处理所有的工作,包括在字段不匹配时阻止记录保存。“Compare Test”参数是字段不匹配时显示的消息。去吧,把它换成你喜欢的

最后一点注意:这是一篇很好的文章,介绍了在视图中使用javascript的所有不同方法:。我使用视图控制器方法是因为我们不希望javascript在字段出现在DOM中之前运行,并且我不想写关于jquery和document.ready方法是否易于访问的文章

class YOUR_MODULE_NAMEViewEdit extends ViewEdit
{
    public function display()
    {
        // make sure it works in the subpanel too
        $this->useForSubpanel = true;

        // definitely need to call the parent method
        parent::display();

        // make sure to echo this out AFTER parent::display() call
        echo '<script type="text/javascript" src="custom/modules/YOUR_MODULE_NAME/force_username_compare.js"></script>';
    }
}