2010-02-12 6 views
0

J'utilise MS CRM 4 dans IE8.Le champ DataValue of Lookup est toujours null

Dans le formulaire Commander un produit, j'essaie d'utiliser l'événement OnChanged du champ Quantité pour donner un retour à l'utilisateur en fonction de la valeur actuelle du champ de recherche de produit.

Mon problème est que, quoi que je fasse, la propriété DataValue du champ est toujours null.

est ici le javascript je teste avec:

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); 
} 

Notez que j'ai vérifié que crmForm.all.productid_d est certainement non nulle, et qu'il contient les valeurs que je suis intéressé. Dans la fenêtre développeur 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"/> 

Dans le code ci-dessus, il est l'entrée « Frais de voyage » que je suis intéressé par la lecture à partir du champ de recherche.

Cependant, même si une valeur est définitivement chargée dans le champ de recherche, la valeur de données renvoie toujours null. Mon JavaScript me semble basé sur les exemples que je peux trouver, et j'ai confirmé que crmForm.all.product_d existe et n'est pas nulle.

Des idées sur ce qui se passe?

+0

note: crmForm.all n'est pas la manière standard d'accéder aux éléments en javascript. Suggérer l'utilisation de document.getElementById (id) ou de document.forms ['crmForm']. Elements ['yourElementName'] – scunliffe

+0

Merci pour le conseil - Je l'ajusterai demain. –

+0

Cependant, crmForm.all * est * le moyen standard d'y accéder dans CRM. Il est également plus facile d'écrire, plus facile à lire, et ce que vous verrez dans tout l'exemple de code que vous regardez. Je m'en tiendrai à la cohérence si rien d'autre. –

Répondre

4

Vous voulez crmForm.all.productid et non crmForm.all.productid_d. Dans le code HTML actuel, il y aura un champ appelé productid_d, et même s'il peut avoir la valeur que vous voulez, si vous y accédez depuis la collection crmForm.all, utilisez simplement le nom de l'attribut.

+0

Je * déteste * quand la réponse est quelque chose d'aussi simple. Merci Matt. –

Questions connexes