1

SuiteCRM 版本 7.2.1

Sugar 版本 6.5.20(内部版本 1001)

好的,在这里要清楚,我知道如何将 onClick 事件添加到复选框,问题是我不确定如何在 SugarCRM 中专门执行此操作。

我在 SugarCRM 中有一个多选字段。它需要是一个多复选框,但 SugarCRM 中的 HTML 字段是“只读”的。所以我需要编辑现有字段并将其更改为多复选框。如果在这里找到答案。

好吧,现在我有一个多复选框,例如下面的“无”选项。我现在想要发生的是在 EditView 中,当用户单击“以上都不是”时,所有其他选项都被禁用和取消选中。

这是为 HTML 生成的正常代码:

<p style="height: 200px; overflow: scroll; margin-bottom: 1.5em; width:30%" class="select">
<input type="hidden" id="typesoflicenses_c_multiselect" name="typesoflicenses_c_multiselect" value="true">
<label><input type="checkbox" name="typesoflicenses_c[]" value="1" id="typesoflicenses_c" title="">Life Insurance</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="2" id="typesoflicenses_c" title="">Securities</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="3" id="typesoflicenses_c" title="">CPA</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="4" id="typesoflicenses_c" title="">Attorney</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="5" id="typesoflicenses_c" title="">Mortgage Broker</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="6" id="typesoflicenses_c" title="">Real Estate</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="7" id="typesoflicenses_c" title="">Enroller</label><br>
<label><input type="checkbox" name="typesoflicenses_c[]" value="8" id="typesoflicenses_c" title="">None</label><br>
</p>

所以我需要在“none”选项中添加一个onclick函数并调用一个函数。我的问题是:

A)如果我在该字段'customCode' =>的文件中添加一个选项editviewdefs.php,它将用我放在那里的任何内容覆盖整个字段,如果我将整个字段 html 复制并粘贴到那里,那么没有任何内容保存到 DetailView。我只是想附加到已经存在的 html 字段。

这是我的 javascript 文件:

//disable all other checkboxes if "none" is checked
function hideshowlicense(){ 

                                if (document.getElementsByName("typesoflicenses_c[]")[7].checked){
                                //Disable checkboxes
                                document.getElementsByName("typesoflicenses_c[]")[0].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[1].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[2].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[3].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[4].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[5].disabled=true;
                                document.getElementsByName("typesoflicenses_c[]")[6].disabled=true;
                                //Uncheck any other checked options
                                document.getElementsByName("typesoflicenses_c[]")[0].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[1].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[2].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[3].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[4].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[5].checked=false;
                                document.getElementsByName("typesoflicenses_c[]")[6].checked=false;
                                }else{
                                document.getElementsByName("typesoflicenses_c[]")[0].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[1].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[2].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[3].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[4].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[5].disabled=false;
                                document.getElementsByName("typesoflicenses_c[]")[6].disabled=false;
                                }

    }

    SUGAR.util.doWHEN("typeof($('#loa_c'))!= 'undefined'"), YAHOO.util.Event.addListener(YAHOO.util.Dom.get('loa_c'), 'change', dep);
    SUGAR.util.doWHEN("typeof($('#typesoflicenses_c'))!= 'undefined'"), YAHOO.util.Event.addListener(YAHOO.util.Dom.get('typesoflicenses_c'), 'change', hideshowlicense);

现在我在 chrome 控制台中遇到错误,并且 HTML 中没有任何更改。但是,如果我在 Firefox 中提取相同的内容,则不会出现错误。

也是我读到的一篇文章,内容是修改您已进行更改的字段,以便它们在详细视图中保留该值。

4

1 回答 1

0

我在我的javascript(上面列出的javascript)之前添加了这个,它解决了我的问题。我输入了doWHEN而不是doWhen. 我有一些语法错误。

SUGAR.util.doWhen("typeof($('#typesoflicenses_c'))!= 'undefined'",
        function() {
            YAHOO.util.Event.addListener(YAHOO.util.Dom.get(document.getElementsByName("typesoflicenses_c[]")[7]), 'change', hideshowlicense);
        }
    );

@Lelio Faieta,在这种情况下,HTML 是由 Sugar 生成的,而不是我,其次,javascript 可以调用 byname而不是idusing document.getElementsByName。- W3 学校,document.getElementsByName

customCode在这种情况下也完全没有必要。

感谢 Jeff Bickart通过电子邮件提供的帮助。他是一个重要的帮助。

于 2015-09-08T18:40:11.787 回答