2010-02-12 3 views
0

Я использую MS CRM 4 в IE8.Поле DataValue поиска всегда равно

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

Моя проблема заключается в том, что независимо от того, что я делаю, свойство 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 определенно не равен нулю, и что он содержит значения Я заинтересован. Из окна разработчиков Internet Explorer 8:

<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 существует и не является нулевым.

Любые мысли о том, что происходит?

+0

сторона примечание: crmForm.all не является стандартным способом доступа к элементам в javascript. Предлагаем использовать либо document.getElementById (id), либо document.forms ['crmForm']. Elements ['yourElementName'] – scunliffe

+0

Спасибо за подсказку - я подкорректирую его завтра. –

+0

Однако crmForm.all * - это стандартный способ доступа к нему в CRM. Это также легче писать, читать легче и что вы увидите во всем примере кода, на который вы смотрите. Я бы придерживался его для согласованности, если ничего другого. –

ответ

4

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

+0

Я * ненавижу * это когда ответ прост. Спасибо Мэтт. –

Смежные вопросы