【发布时间】:2012-08-27 20:38:28
【问题描述】:
我正在尝试修改 SugarCRM (SugarPro 6.1.2) 实例的 EditView 中自定义字段(复选框)的行为。具体来说,我希望每当有人点击复选框时都会显示一个 div。该字段按预期出现在编辑视图中,我添加了一些执行 onclick 的 javascript - 这也很好。问题是,保存记录时,未保存复选框的值。以下是我如何添加字段和关联 javascript 的详细信息:
- 我在 Studio 中将该字段创建为复选框。它叫做wire_payment_c
- 我将该字段添加到 DetailView 和 EditView 布局中。
- 我运行了 Quick Repair & Rebuild
-
我编辑了./custom/modules/MODULE/metadata/editviewdefs.php如下:
1 => array ( 0 => '', 1 => array ( 'name' => 'wire_payment_c', 'label' => 'LBL_WIRE_PAYMENT', 'customCode' => '<input type="hidden" value="0" name="wire_payment_c"> <input id="wire_payment_c" type="checkbox" tabindex="107" title="" value="{$fields.wire_payment_c.value}" name="wire_payment_c" onclick="showMe(\'wire_message\', this)"> <div id="wire_message" style="display:none">Please obtain wire payment information.</div>' , ), ),
在面板定义的下方,我还添加了以下内容:
'includes'=> array(
array('file'=>'custom/modules/MODULE/wire_pmt.js' ),
),
- 我在 ./custom/modules/MODULE/wire_pmt.js 创建了包含 showMe() 的 javascript。
- 我再次运行了快速修复和重建
如果我取出editviewdefs.php 中的customCode 行,我已经能够验证复选框值是否完全按照预期保存并保留在数据库中。此外,我可以验证删除 onclick 指令并将输入标记保留在分配给 customCode 的值中就足以重现问题。结果似乎是这个问题与 javascript 无关——这与我如何重新呈现输入标签有关。但是我为输入标记准备的代码看起来与我完全注释掉 customCode 并通过 FireBug 查看表单时看到的完全一样。
在这种情况下,是否需要做其他事情才能让 Sugar 将自定义字段的值保存到数据库中,然后在加载时将保存的值显示到详细信息和编辑视图?很高兴阅读有关此过程的文档,但未能找到任何似乎适用于此类特定任务的文档。
非常感谢!
【问题讨论】:
标签: sugarcrm