SuiteCRM版本7.2.1
Sugar Version 6.5.20(Build 1001)
好的,在这里要清楚,我知道如何将onClick事件添加到复选框,问题是我不确定如何在SugarCRM中专门执行此操作。
我在SugarCRM中有一个Multi-Select字段。它需要是一个Multi-checkbox,但SugarCRM中的HTML字段是“只读”。所以我需要编辑现有字段并将其更改为Multi-checkbox。如果发现回答here。
好吧,现在我有一个多复选框,如下面的“无”选项。我现在想要的是在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中提取相同的内容,则不会出现错误。
Here也是我读过的关于修改你做过更改的字段的文章,以便它们在详细视图中保留其值。
答案 0 :(得分: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可以name
而不是id
使用document.getElementsByName
调用。 - W3 Schools, document.getElementsByName
customCode
也是不必要的。
感谢Jeff Bickart通过电子邮件提供帮助。他是一个重要的帮助。