Dynamics CRM JavaScript制作表单仅读取-TypeError:control.getDisabled



试图使价格列表形式和价格项形式仅读取并使用以下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);
       }
    } 
}

相关内容

最新更新