Javascript 查找字段的DataValue始终为空
我在IE8中使用MS CRM 4 在Order Product表单上,我试图使用Quantity字段的OnChanged事件,并根据Product lookup字段的当前值向用户提供一些反馈 我的问题是,无论我做什么,字段的DataValue属性总是空的 下面是我正在测试的javascript: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
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中访问它的标准方式。它也更容易编写,更容易阅读,以及您将在所有示例代码中看到的内容。如果没有其他问题的话,我会坚持它的一致性。我讨厌答案这么简单。谢谢,马特。我讨厌答案这么简单。谢谢你,马特。