Dynamics CRM Javascript making form read only -TypeError: control.getDisabled is not a function
Dynamics CRM Javascript making form read only -TypeError: control.getDisabled is not a function
尝试将价目表表格和价格项目表格设置为只读并使用下面的 java 脚本,但不断出现以下错误; 此记录的脚本之一导致错误。有关详细信息,请下载日志文件。
TypeError: control.getDisabled 不是 makeFieldsReadOnly
的函数
使用 Dynamics CRM 2016 并且此 JS 在加载表单
时运行
function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (!control.getDisabled()) {
control.setDisabled(true);
}
} }
关于为什么这可能会失败,在 CRM 2011 中工作正常的任何建议?
并非您迭代的所有控件都可以禁用,因此代码失败。当它尝试在未声明此函数的控件上执行 getDisabled
时会抛出错误。
这可以通过首先检查控件上是否存在必要的函数来解决:
function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (control.getDisabled && control.setDisabled && !control.getDisabled()) {
control.setDisabled(true);
}
}
}
尝试将价目表表格和价格项目表格设置为只读并使用下面的 java 脚本,但不断出现以下错误; 此记录的脚本之一导致错误。有关详细信息,请下载日志文件。 TypeError: control.getDisabled 不是 makeFieldsReadOnly
的函数使用 Dynamics CRM 2016 并且此 JS 在加载表单
时运行function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (!control.getDisabled()) {
control.setDisabled(true);
}
} }
关于为什么这可能会失败,在 CRM 2011 中工作正常的任何建议?
并非您迭代的所有控件都可以禁用,因此代码失败。当它尝试在未声明此函数的控件上执行 getDisabled
时会抛出错误。
这可以通过首先检查控件上是否存在必要的函数来解决:
function onLoad() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 2)
makeFieldsReadOnly(); }
function makeFieldsReadOnly() {
var controls = Xrm.Page.ui.controls.get();
for (var i in controls) {
var control = controls[i];
if (control.getDisabled && control.setDisabled && !control.getDisabled()) {
control.setDisabled(true);
}
}
}