确保2个字段相同

时间:2014-04-30 13:15:45

标签: sugarcrm

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

我希望在允许保存之前确保两个字段完全相同。如果他们不匹配(类似于网站在提交之前确保电子邮件是相同的),我希望它能说出像#34;确保这两个字段匹配"在他们这样做之前不要保存。

我该怎么做?这是阻止我推出这个模块的唯一因素。

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以很容易地解决这个问题。

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

username_c

username_compare_c

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

addToValidateComparison('EditView', 'username_c', '', true, 'Compare Test', 'username_compare_c');

然后你需要从view.edit中为你的模块吐出js。假设您没有自定义view.edit设置,请创建以下文件并添加以下代码: 定制/模块/ YOUR_MODULE_NAME /视图/ 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>';
    }
}

addToValidateComparison将为您完成所有艰苦工作,包括在字段不匹配时阻止记录保存。 “比较测试”参数是字段不匹配时显示的消息。继续把它改成你想要的任何东西。

最后注意事项:这是一篇很好的文章,介绍了将javascript加入视图的所有不同方法:https://www.atcoresystems.com/blog/adding-custom-javascript-to-a-sugarcrm-view。我使用了视图控制器方法,因为我们不希望我们的javascript在DOM中存在字段后才能运行,我不想写jquery是否因此可以随时访问document.ready方法。