我在IE8中使用MS CRM 4。
在Order Product表单上,我试图使用Quantity字段的OnChanged事件,根据Product lookup字段的当前值向用户提供一些反馈。
我的问题是,无论我做什么,该字段的DataValue属性总是 null。
这是我正在测试的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"/>
在上面的代码中,我有兴趣从Lookup字段中读出“旅行费用”条目。
但是 - 即使Lookup字段中确实加载了一个值,Datavalue仍会返回null。
根据我可以找到的示例,我的JavaScript看起来正确,我已经确认crmForm.all.product_d存在且不为空。
有关正在发生的事情的任何想法?
答案 0 :(得分:4)
你想要crmForm.all.productid而不是crmForm.all.productid_d。在实际的HTML中,会有一个名为productid_d的字段,即使它可能具有您想要的值,但如果您从crmForm.all集合访问它,只需使用属性名称。