Javascript 无法在CRM 2011 online中禁用必填字段

Javascript 无法在CRM 2011 online中禁用必填字段,javascript,dynamics-crm-2011,dynamics-crm-online,Javascript,Dynamics Crm 2011,Dynamics Crm Online,商机实体的“estimatedvalue”属性标记为必需。我在表单上有它,但通过表单UI自定义和使用javascript将其标记为禁用,但在我禁用表单后,其他一些javascript正在重新启用表单 到目前为止,我拥有的最佳解决方案是从超时回调中禁用属性:setTimeout(“CommonLib.setDisabled('estimatedvalue',true);”,1)。当该字段加载时,它将加载为禁用,然后其他一些js将启用该字段,然后超时回调将运行并再次禁用它,因此您可以看到该字段从灰色

商机实体的“estimatedvalue”属性标记为必需。我在表单上有它,但通过表单UI自定义和使用javascript将其标记为禁用,但在我禁用表单后,其他一些javascript正在重新启用表单

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

我已经禁用了另外两个属性,它们保持禁用状态,但estimatedvalue是唯一需要的属性,所以我猜它与此有关


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

我认为这与需求水平无关,但@Anwar可能是一种解释。是否可以再次检查是否有其他自定义脚本正在启用该字段

我刚刚尝试了以下任务,其中主题是必填字段,并且似乎工作正常:


Xrm.Page.ui.controls.get('subject').setDisabled(true)

我认为这与需求水平无关,但@Anwar可能是一种解释。是否可以再次检查是否有其他自定义脚本正在启用该字段

我刚刚尝试了以下任务,其中主题是必填字段,并且似乎工作正常:


Xrm.Page.ui.controls.get('subject').setDisabled(true)

也许,在自定义脚本完成执行(您的脚本)后,会触发一些内置脚本。我想这是对这种行为的唯一解释。我假设其他脚本正在运行,我只是无法找到它或跟踪它…我尝试禁用您指示的字段(机会上的estimatedvalue),它工作正常。我无法“重新启用”它,并且它不会在短时间内(约5分钟)发生。这是使用CRM 2011和rollup 6。可能有内置脚本,在自定义脚本完成执行后触发(您的脚本)。我想这是对这种行为的唯一解释。我假设其他脚本正在运行,我只是无法找到它或跟踪它…我尝试禁用您指示的字段(机会上的estimatedvalue),它工作正常。我无法“重新启用”它,并且它不会在短时间内(约5分钟)发生。这是将CRM 2011与汇总6一起使用。必须有其他一些CRM javascript在CRM onLoad事件触发后运行。我尝试对“estimatedvalue”进行文本搜索,但在启用它的脚本中找不到它。你知道如何追踪启用它的脚本吗?我的js技能不是最好的。你可以试着调试脚本,也许可以找到在哪里再次启用它。例如,function disableOnLoad(){debugger;..//rest of your code}。在IE打开商机记录中,转到工具->F12开发人员工具,然后开始脚本调试。刷新对话框,您也可以调试crm脚本。javascript调试将是真正找出导致重新启用的原因的唯一方法,但谁知道需要多长时间才能完成所有Microsoft javascript的调试。相反,我选择了保持原样。感谢您的帮助。在CRM onLoad事件触发后,必须有其他一些CRM javascript正在运行。我尝试对“estimatedvalue”进行文本搜索,但在启用它的脚本中找不到它。你知道如何追踪启用它的脚本吗?我的js技能不是最好的。你可以试着调试脚本,也许可以找到在哪里再次启用它。例如,function disableOnLoad(){debugger;..//rest of your code}。在IE打开商机记录中,转到工具->F12开发人员工具,然后开始脚本调试。刷新对话框,您也可以调试crm脚本。javascript调试将是真正找出导致重新启用的原因的唯一方法,但谁知道需要多长时间才能完成所有Microsoft javascript的调试。相反,我选择了保持原样。谢谢你的帮助。