Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 365 Javascript_Javascript_Forms_Microsoft Dynamics_Webresource - Fatal编程技术网

用于访问表单字段值的Dynamics 365 Javascript

用于访问表单字段值的Dynamics 365 Javascript,javascript,forms,microsoft-dynamics,webresource,Javascript,Forms,Microsoft Dynamics,Webresource,如何在Dynamics 365 online中使用Javascript访问表单字段值?这就是我尝试过的: 一个脚本web资源,在表单“load”上调用了一个“onload”事件。这不管用。我得到了[Object],但我需要一个字符串。调试它时,不显示具有字段值的属性 function loadForm() { var value1 = Xrm.Page.data.entity.attributes.get("new_dealercode").getValue(); aler

如何在Dynamics 365 online中使用Javascript访问表单字段值?这就是我尝试过的:

一个脚本web资源,在表单“load”上调用了一个“onload”事件。这不管用。我得到了
[Object]
,但我需要一个字符串。调试它时,不显示具有字段值的属性

function loadForm()
{
    var value1 =    Xrm.Page.data.entity.attributes.get("new_dealercode").getValue();
    alert(value1);
}
我在表单中包含了一个HTML web资源,它不起任何作用,但我知道它正在被调用,因为如果我对它发出警报,它就会被警报

<html>
<head>
<script type="text/javascript">
    var value1 = window.parent.Xrm.Page.getAttribute("new_dealercoder").getValue();
    alert(value1);
</script><meta charset="utf-8">
</head><body><br></body>
</html>

var value1=window.parent.Xrm.Page.getAttribute(“new_dealercoder”).getValue();
警报(值1);

我正在努力实现的目标:
基于表单上的字段值具有动态“src”的Iframe。

您可以缩短代码以访问表单字段值

Xrm.Page.getAttribute("new_dealercode").getValue();
但是,如果您正在寻址OptiStart字段(下拉选择),则需要使用

Xrm.Page.getAttribute("new_dealercode").getSelectedOption();
它返回一个带有
文本
属性的选项对象(请参见)。
您会发现查找和日期时间字段的获取和设置更加复杂

如果需要检索查找属性的属性,则需要处理一组实体引用,这些引用具有属性
id
name
logicalname

要获取
id
,请访问数组中的第一个元素:

var dealerobj = Xrm.Page.getAttribute("new_dealercode").getValue();
var dealerid = dealerobj[0].id;
小心您可能希望通过检查空值来强化代码


至于第二个问题,您可以使用

Xrm.Page.getControl("your_control_name_here").setSrc("$webresources\new_your.html")


从开始查找完整引用。

缩短的代码也不起作用:-(.我仍然在警报中得到[Object Object],我希望得到一个文本值。我认为Javascript调用得太早了,因为警报发生在页面完全加载之前(单击“确定”后继续渲染)。这使我认为javascript应该位于表单上的html web资源中,而不是“表单Onload”。唯一的问题是,如果我将其放在HTML资源上,什么都不会发生。如果您为CRM Form OnLoad事件注册函数,则可以保证所有表单字段/属性值都是可访问的。如果您尝试从web资源访问父CRM表单,则可能不会出现这种情况。很难判断您的情况下出现了什么问题,但不能他的是如此基本的东西以至于很难相信它不应该起作用。我发现了问题所在。这是一个查找。我的下一个问题是如何从查找中获得值。我可以得到“名称”出,但我需要ID。你知道我如何获得它吗?更新了我的答案以从查找/实体引用中获取ID。谢谢Filburt,但它不是我要的ID。我不想要GUID,我想要记录的ID(它显示在屏幕上)。换句话说,我的经销商ID为“836”这会显示在屏幕上。如果我使用Xrm.Page.getAttribute(“new_dealercode”).getValue()[0]。name,我会得到“实际的经销商名称”。如果我使用Xrm.Page.getAttribute(“new_dealercode”).getValue()[0]。id,我会得到GUID id,但我想得到“836”,屏幕上显示的经销商id。你知道我如何得到它吗(屏幕上显示的实际文本-不使用DOM)。