Javascript 查找字段的DataValue始终为空

Javascript 查找字段的DataValue始终为空,javascript,dynamics-crm,lookup,dynamics-crm-4,Javascript,Dynamics Crm,Lookup,Dynamics Crm 4,我在IE8中使用MS CRM 4 在Order Product表单上,我试图使用Quantity字段的OnChanged事件,并根据Product lookup字段的当前值向用户提供一些反馈 我的问题是,无论我做什么,字段的DataValue属性总是空的 下面是我正在测试的javascript: if (crmForm.all.productid_d.DataValue == null) alert('DataValue is null'); else { alert ('Dat

我在IE8中使用MS CRM 4

在Order Product表单上,我试图使用Quantity字段的OnChanged事件,并根据Product lookup字段的当前值向用户提供一些反馈

我的问题是,无论我做什么,字段的DataValue属性总是空的

下面是我正在测试的javascript:

if (crmForm.all.productid_d.DataValue == null)
    alert('DataValue is null');
else
{
    alert ('DataValue is non-null');
    alert('Length: ' + crmForm.all.productid_d.DataValue.Length);
}
注意,我已经检查了crmForm.all.productid_d是否绝对非空,并且它包含我感兴趣的值。从IE8开发者窗口:

<td id="productid_id">
    <table width="100%" class="ms-crm-Lookup" style="table-layout: fixed;" cellSpacing="0" cellPadding="0">
        <tbody>
            <tr>
                <td>
                    <div tabIndex="1011" class="ms-crm-Lookup " style="width: 100%;" ime-mode="auto">
                        <span class="ms-crm-Lookup-Item" contentEditable="false" onclick="openlui()" otypename="product" otype="1024" oid="{DA770EAE-A4FB-DD11-BBD6-001A646872CF}" data="" ?="">
                            <img class="ms-crm-Lookup-Item" alt="" src="/_imgs/ico_16_1024.gif" complete="complete" imageSrc="/_imgs/ico_16_1024.gif"/>
                            Text - Travel Expenses
                            <a tabIndex="-1" title="Travel Expenses" class="atLink" id="at{DA770EAE-A4FB-DD11-BBD6-001A646872CF}" contentEditable="false" onclick="return false;" href="javascript:onclick();" target="_self"/>
                            <b class="IMG_lu_htc_b"/>

文本-差旅费
在上面的代码中,我感兴趣的是从查找字段中读出的“差旅费用”条目

然而,即使在查找字段中确实加载了一个值,Datavalue仍然返回null

根据我能找到的示例,我的JavaScript看起来很不错,我已经确认crmForm.all.product_d存在并且不为null


有什么想法吗?

您想要的是crmForm.all.productid,而不是crmForm.all.productid。在实际的HTML中,将有一个名为productid_d的字段,即使它可能具有您想要的值,如果您从crmForm.all集合访问它,只需使用属性名即可。

您想要的是crmForm.all.productid,而不是crmForm.all.productid_d。在实际的HTML中,将有一个名为productid_d的字段,即使它可能具有您想要的值,如果您从crmForm.all集合访问它,只需使用属性名即可。

旁注:crmForm.all不是访问javascript中元素的标准方法。建议使用document.getElementById(id)或document.forms['crmForm'].elements['yourElementName']谢谢你的提示-我明天会调整它。不过,crmForm.all是在CRM中访问它的标准方式。它也更容易编写,更容易阅读,以及您将在所有示例代码中看到的内容。如果没有其他东西,我会坚持使用它的一致性。旁注:crmForm.all不是访问javascript中元素的标准方法。建议使用document.getElementById(id)或document.forms['crmForm'].elements['yourElementName']谢谢你的提示-我明天会调整它。不过,crmForm.all是在CRM中访问它的标准方式。它也更容易编写,更容易阅读,以及您将在所有示例代码中看到的内容。如果没有其他问题的话,我会坚持它的一致性。我讨厌答案这么简单。谢谢,马特。我讨厌答案这么简单。谢谢你,马特。