Dynamics CRM 2013 Javascript升级
我们正在测试从2013年到2016年的Dynamics CRM升级,以了解CRM升级后需要升级哪些定制 我们有以下Javascript webresource,用于特定情况Dynamics CRM 2013 Javascript升级,javascript,dynamics-crm,microsoft-dynamics,dynamics-crm-2013,dynamics-crm-2016,Javascript,Dynamics Crm,Microsoft Dynamics,Dynamics Crm 2013,Dynamics Crm 2016,我们正在测试从2013年到2016年的Dynamics CRM升级,以了解CRM升级后需要升级哪些定制 我们有以下Javascript webresource,用于特定情况 function MyOnLoad() { var pickListValue = Xrm.Page.getAttribute("field1").getValue(); if (Xrm.Page.ui.getFormType() == 2 && pickListValue == 10000000
function MyOnLoad()
{
var pickListValue = Xrm.Page.getAttribute("field1").getValue();
if (Xrm.Page.ui.getFormType() == 2 && pickListValue == 100000006)
{
var ddlNewField1 = document.getElementById("field1");
if (ddlNewField1.addEventListener) {
ddlNewField1.addEventListener ("change", function () {MyOnChange();}, false);
}
else {
ddlNewField1.attachEvent('onchange',MyOnChange);
}
}
}
function MyOnChange()
{
if (Xrm.Page.getAttribute("field1").getValue() == "100000006") {
Xrm.Page.getControl("field2").setVisible(false);
Xrm.Page.getAttribute("field2").setRequiredLevel("none");
}
// If the selected value is not Other, hide Specify, and set requirement to Not Required
else {
Xrm.Page.getControl("field2").setVisible(true);
Xrm.Page.getAttribute("field2").setRequiredLevel("required");
}
}
此代码在我们的Dynamics CRM 2013中运行良好,旨在执行以下操作:
加载Lead form时,如果FIELD1的值设置为特定值,则显示第二个字段FIELD2,并使其成为业务所需
这里比较棘手的部分是,只有在加载表单时第一个字段包含特定值时,第二个字段才可见。如果由于某种原因,表单加载期间第一个字段的值不同,则即使选择了该特定值,第二个字段也不会显示
因此,请继续:
- 表单加载时从不显示字段2
- 如果表单上的Load FIELD1值等于X且FIELD1值更改->显示FIELD2并将其设置为必需
- 如果表单上的Load FIELD1值不等于X,并且FIELD1值更改->即使FIELD1的选择变为X,也不要显示FIELD2,因为它最初不是X
谢谢不要像使用
document.getElementById
时那样访问DOM。用以下的话来说:
JavaScript开发人员习惯于与文档对象交互
代码中的模型(DOM)元素。您可以使用window.getElementById
方法或jQuery库。您可以在中自由使用这些技术
您的HTML web资源,但不支持它们访问元素
在Microsoft Dynamics 365应用程序页或实体表单中。相反
对实体表单元素的访问通过Xrm.Page对象公开
模型Microsoft Dynamics 365开发团队保留此权利
更改页面的组成方式,包括
元素,因此使用Xrm.Page对象模型可以保护代码不受
页面实现方式的更改
在您的情况下,您可以改为使用支持的:
不要像使用
document.getElementById
时那样访问DOM。用以下的话来说:
JavaScript开发人员习惯于与文档对象交互
代码中的模型(DOM)元素。您可以使用window.getElementById
方法或jQuery库。您可以在中自由使用这些技术
您的HTML web资源,但不支持它们访问元素
在Microsoft Dynamics 365应用程序页或实体表单中。相反
对实体表单元素的访问通过Xrm.Page对象公开
模型Microsoft Dynamics 365开发团队保留此权利
更改页面的组成方式,包括
元素,因此使用Xrm.Page对象模型可以保护代码不受
页面实现方式的更改
在您的情况下,您可以改为使用支持的:
我不记得引入了哪个CRM版本,但您是否可以弃用JavaScript并替换为业务规则?我不记得引入了哪个CRM版本,但您是否可以弃用JavaScript并替换为业务规则?
Xrm.Page.getAttribute("field1").addOnChange(MyOnChange)