2012-04-03 70 views
1

商机实体的'estimatedvalue'属性被标记为必需。我在表单上使用它,但通过表单UI自定义以及使用javascript将其标记为禁用,但其他一些JavaScript在禁用它之后重新启用表单。无法禁用CRM 2011在线的必填字段

到目前为止,我的最佳解决方案是禁用超时回调的属性:setTimeout("CommonLib.setDisabled('estimatedvalue', true);", 1);。当字段加载时,它加载为禁用状态,然后其他一些js启用该字段,然后从超时回拨运行并再次禁用该字段,以便您看到字段从灰色变为黑色时变为灰色。

我还禁用了另外两个属性,它们保持禁用状态,但估计值是唯一实际需要的属性,所以我猜测它与此有关。

关于什么是重新启用该领域的任何想法?

+0

也许,有些内置脚本会在定制脚本执行完毕后触发(您的脚本)。我想这是这种行为的唯一解释。 – Anwar 2012-04-03 06:55:54

+0

我假设一些其他脚本正在运行,我只是无法找到它或跟踪它... – Daryl 2012-04-03 12:39:44

+0

我试过禁用你指出的领域(机会估计值),它工作正常。我无法'重新启用'它并且不会在短时间内(约5分钟)发生。这是使用CRM 2011汇总6. – glosrob 2012-04-03 13:20:21

回答

1

我不认为它与要求级别有任何关系,但@Anwar可能是一种解释。你可以仔细检查一下其他的自定义脚本是否可以启用该字段?

我只是试图与在主题为必填字段任务以下,它似乎是工作的罚款:

Xrm.Page.ui.controls.get(“主体”)setDisabled(真)。

+0

CRM onLoad事件触发后,必须有一些其他CRM JavaScript正在运行。我尝试对'estimatedvalue'进行文本搜索,但无法在启用它的脚本中的任何地方找到它。任何想法如何追踪脚本启用它?我的技能不是最好的。 – Daryl 2012-04-03 12:38:01

+0

您可以尝试调试脚本,并可能能够找出它在哪里再次启用。例如,function disableOnLoad(){debugger; ..... //其余的代码}。在IE中打开机会记录,转到工具 - > F12开发者工具,并开始脚本调试。刷新对话框,您也可以调试crm脚本。 – Ahmed 2012-04-03 13:21:09

+0

javascript调试将是唯一的方法来真正找出是什么导致重新启用,但谁知道需要多久才能通过所有微软的JavaScript。相反,我选择按原样离开我的黑客。谢谢你的帮助。 – Daryl 2012-04-04 17:17:29