Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 2011 Dynamics CRM必填字段,在窗体上显示两次,一次隐藏一次可见_Dynamics Crm 2011_Dynamics Crm - Fatal编程技术网

Dynamics crm 2011 Dynamics CRM必填字段,在窗体上显示两次,一次隐藏一次可见

Dynamics crm 2011 Dynamics CRM必填字段,在窗体上显示两次,一次隐藏一次可见,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我有一个表单,它有两个部分,两个部分都包含一个特定的字段“业务必需”。在我当前的场景中,这些部分中的第一部分是隐藏的,而第二部分是可见的。(基本上,这两者中哪一个是可见的在JScript中设置的,取决于下拉列表的值) 问题是,如果用户没有为必填字段输入值,然后单击“保存”,则表单会尝试在两次出现的第一次(即不可见的一次)验证它。当它发现用户没有填写这个值时,它会将隐藏的部分显示出来,尽管同一个有问题的字段已经在表单的后面 我有没有办法阻止它这样做,或者用另一种方式解决我的问题 编辑: 好的,从下

我有一个表单,它有两个部分,两个部分都包含一个特定的字段“业务必需”。在我当前的场景中,这些部分中的第一部分是隐藏的,而第二部分是可见的。(基本上,这两者中哪一个是可见的在JScript中设置的,取决于下拉列表的值)

问题是,如果用户没有为必填字段输入值,然后单击“保存”,则表单会尝试在两次出现的第一次(即不可见的一次)验证它。当它发现用户没有填写这个值时,它会将隐藏的部分显示出来,尽管同一个有问题的字段已经在表单的后面

我有没有办法阻止它这样做,或者用另一种方式解决我的问题

编辑:

好的,从下面的答案来看,我想也许我没有把情况讲清楚。我不认为将该字段设置为非强制性,或者使用令牌值填充该字段会起到作用,因为我确实希望在用户未填充该字段时验证强制性状态

我遇到的问题是,在验证它之后,它会向用户显示隐藏字段的版本,而不是已经可见的版本


据我所知,简单的API(将字段设置为强制或非强制)同样适用于表单上出现的任何字段,而不是一个特定的字段。

编辑:好吧,这并不漂亮,但应该可以

您可以使用

var bothControls = Xrm.Page.getAttribute('transactioncurrencyid').controls
和使用

bothControls.get(1)
为您提供第二个(基于零的索引,natch),以便您可以将其禁用

bothControls.get(1).setDisabled(true)

这意味着将跳过验证

您可以更改需求值:

Xrm.Page.getAttribute("FieldName").setRequiredLevel("none");

您可以使用此调用
Xrm.Page.getAttribute(“field\u tonotbe\u required”)。setRequiredLevel(“none”)

但是由于表单上有两个字段,我不确定Javscript SDK是否会使所有字段都不是必需的,还是仅第一个字段,因此,您可能需要从节中遍历层次结构以找到字段,然后调用
setRequiredLevel
,查看您希望更改的确切字段。

您是否考虑过使用一个脚本,该脚本将在更改时触发,并将输入的值从可见节的字段填充到隐藏节的对应字段中

假设两个业务必填字段分别称为Hubba和Bubba。将JavaScript代码连接到这两个组件上,更改时将检查Hubba是否为空(如果为空,则将Bubba的内容复制到其中。否则,它将只将Hubba中的内容复制到Bubba中

我假设这些字段在性质上是对应的,因此您可以在它们之间复制信息

我想到了另外两个选择(不太理想的IMHO)。第一个是Pedro所说的,通过打开和关闭验证来增强。不确定它是否有效。我只是出于完整性考虑才提到它


第二个是应用Polaris的流程驱动UI。确实不确定它是否有效,但在理论上应该有效。

嗨,Pedro,我认为这不会解决问题,因为我确实希望验证字段。请参阅编辑问题以获得澄清。嗨,glosrob,我认为这不会解决问题,因为我确实希望验证字段。请参阅编辑问题以获得澄清阳离子。啊,是的,我的错误,这很有趣-我以为值在表单上复制了两次到两个字段,显然不是..如果大写设置为“开”,则会复制到另一个字段,我看到了问题,抱歉今天太慢了!您认为可以将必填级别设置为表单上字段的一个实例,而不是其他?我想是的,您可能需要深入研究CRM SDK javascript代码(不好玩)找出它在做什么,找到你想要的属性并更新它,或者可能删除你不想要的属性…是的,谢谢。Glosrob的解决方案似乎完全按照你的建议做,所以看起来一切都很好。嗨,再次抱歉-情况可能不够清楚。没有两个业务必填字段(Hubba,Bubba)只有一个,但它在表单上显示了两次。无论如何,谢谢你的回答,看起来我已经通过glosrob的解决方案解决了它。