DataValue поля Lookup всегда имеет значение null

Я использую MS CRM 4 в IE8.

В форме «Заказ продукта» я пытаюсь использовать событие OnChanged поля «Количество», чтобы дать некоторую обратную связь пользователю на основе текущего значения поля поиска продукта.

Моя проблема в том, что независимо от того, что я делаю, свойство 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 определенно загружено значение, значение Datavalue по-прежнему возвращает значение null.

Мой JavaScript выглядит правильно, основываясь на примерах, которые я могу найти, и я подтвердил, что crmForm.all.product_d существует и не равен нулю.

Есть мысли по поводу происходящего?


person Ubiquitous Che    schedule 12.02.2010    source источник
comment
примечание: crmForm.all не является стандартным способом доступа к элементам в javascript. Предложите использовать либо document.getElementById(id), либо document.forms['crmForm'].elements['yourElementName']   -  person scunliffe    schedule 12.02.2010
comment
Спасибо за подсказку - завтра поправлю.   -  person Ubiquitous Che    schedule 14.02.2010
comment
Однако crmForm.all является стандартным способом доступа к нему в CRM. Его также легче писать, легче читать, и это то, что вы увидите во всех примерах кода, которые вы просматриваете. Я бы придерживался его для последовательности, если ничего другого.   -  person David Eison    schedule 24.08.2010


Ответы (1)


Вам нужен crmForm.all.productid, а не crmForm.all.productid_d. В фактическом HTML будет поле с именем productid_d, и даже если оно может иметь нужное вам значение, если вы получите к нему доступ из коллекции crmForm.all, просто используйте имя атрибута.

person Matt    schedule 12.02.2010
comment
Я ненавижу, когда ответ такой простой. Спасибо, Мэтт. - person Ubiquitous Che; 14.02.2010