Javascript CRM 2011,保存后,字段恢复为不可见

Javascript CRM 2011,保存后,字段恢复为不可见,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,我是CRM 2011的新手,如果答案显而易见,我很抱歉。我创建的实体是一个表单,用户在其中填写信息,一些字段被隐藏,直到满足某些要求才能显示 你迟到了吗?是/否 (在选择“是”之前隐藏)原因: 我一开始使用javascript使它们不可见,然后在满足要求时使它们可见。用户按下保存按钮后,“原因”字段将恢复为不可见,有没有办法使其保持可见 谢谢您必须在onLoad事件中编写javascript代码,以查看字段的值是否已经处于导致字段可见的状态。保存实体后,它会重新加载自身,以防插件编辑属性。如果您

我是CRM 2011的新手,如果答案显而易见,我很抱歉。我创建的实体是一个表单,用户在其中填写信息,一些字段被隐藏,直到满足某些要求才能显示

你迟到了吗?是/否 (在选择“是”之前隐藏)原因:

我一开始使用javascript使它们不可见,然后在满足要求时使它们可见。用户按下保存按钮后,“原因”字段将恢复为不可见,有没有办法使其保持可见


谢谢

您必须在
onLoad
事件中编写javascript代码,以查看字段的值是否已经处于导致字段可见的状态。保存实体后,它会重新加载自身,以防插件编辑属性。

如果您已将函数附加到属性onchange事件,则需要将以下内容添加到onload事件中:

//Will fire all functions connected to the attribute change event
Xrm.Page.getAttribute("attribute_name").fireOnChage();
或目录调用实现代码的函数,即

//Will only call the specified function.
ShowHideField(); 
此外,您可能会发现附加到onchange处理程序更容易 直接从onload代码而不是表单UI

Xrm.Page.getAttribute("attribute_name").addOnChange(ShowHideField);
总结如下:

function OnCrmPageLoad() {

    var attrObj = Xrm.Page.getAttribute("attribute_name");
    attrObj.addOnChange(ShowHideField);
    attrObj.fireOnChage(); // OR ShowHideField();

    //… more code here
}

function ShowHideField() {
    // hide fields depending on yes/no questions …
}

你能添加你的JS代码吗?听起来onload事件代码中需要一些额外的逻辑。函数hideField(fieldName){Xrm.Page.ui.controls.get(fieldName.setVisible(false);}