Javascript 无法禁用CRM表单上的仅时间字段
我正在尝试使用javascript使用以下代码禁用Dynamics 365 CE表单上的所有字段:Javascript 无法禁用CRM表单上的仅时间字段,javascript,dynamics-crm,dynamics-365,Javascript,Dynamics Crm,Dynamics 365,我正在尝试使用javascript使用以下代码禁用Dynamics 365 CE表单上的所有字段: Xrm.Page.data.entity.attributes.forEach(函数(属性){ var-control=Xrm.Page.getControl(attribute.getName()); 如果(控制){ 控件。setDisabled(true) } }); 除“仅时间”字段外,表单上的所有字段均被禁用。我的表单如下所示: 我做错了什么?您正在使用Xrm.Page对象,该对象现在
Xrm.Page.data.entity.attributes.forEach(函数(属性){
var-control=Xrm.Page.getControl(attribute.getName());
如果(控制){
控件。setDisabled(true)
}
});
除“仅时间”字段外,表单上的所有字段均被禁用。我的表单如下所示:
我做错了什么?您正在使用
Xrm.Page
对象,该对象现在已被弃用
而是使用传递给表单onLoad函数的上下文。试试这个:
函数onLoad(上下文){
var formContext=context.getFormContext();
formContext.data.attributes.forEach(a=>{
a、 控件。forEach(c=>{
如果(c.getControlType()!==“kbsearch”)
c、 setDisabled(true);
});
});
}
根据控件类型,KB搜索应该是唯一不支持setDisabled()
的控件类型
请使用下面的代码
Xrm.Page.ui.controls.forEach(function (control, i) {
if (control && control.getDisabled && !control.getDisabled()) {
control.setDisabled(true);
}
});