1

Je dois définir une valeur de la zone de texte à l'aide d'une fonction JAVASCRIPT après le rendu de la page. J'ai essayé en obtenant un identifiant de la zone de texte, mais il continue à changer à chaque chargement. Est-il possible de définir la valeur de la zone de texte? Il est probable que je crée comme une extension dont j'ai besoin pour définir la valeur d'entrée et sélectionner le champ.Définir la valeur de la zone de texte après rendu - force.com

J'ai essayé Queryselctor. exemple:

getElementsByTagName ('input') 1 .value = "testRecord";

Il définit la valeur du nom de famille dans le formulaire de contact et a l'impression que cela a fonctionné. Lorsque je clique sur enregistrer, il suffit de le vider et de le montrer comme obligatoire! Mais quand je tape quelque chose dans la zone de texte et puis j'utilise ma fonction pour définir la valeur, cela a fonctionné.

Ceci est le code généré par la force de vente.

<div data-aura-rendered-by="14996:0" class="uiInput uiInputText uiInput--default uiInput--input" data-aura-class="uiInput uiInputText uiInput--default uiInput--input"> 
     <label class="uiLabel-top form-element__label uiLabel" for="14981:0" data-aura-rendered-by="14991:0" data-aura-class="uiLabel"> 
      <span class="" data-aura-rendered-by="14992:0">Last Name</span> 
      <!--render facet: 14994:0--> 
      <span class="required " data-aura-rendered-by="14982:0">*</span> 
     </label> 
     <input class="compoundBLRadius compoundBRRadius form-element__row input" maxlength="80" type="text" aria-describedby="" placeholder="Last Name" required="" id="14981:0" data-aura-rendered-by="14985:0" data-interactive-lib-uid="242" aria-required="true"> 
</div> 

J'ai joint des images pour votre référence.

Valeur de réglage de la zone de texte de la console

Value Updated in form

Valeur définie dans succčs zone de texte.

seting value from console

Après avoir cliqué sur le bouton Enregistrer, la zone de texte vide et FILD se montre erreur mandratory!

after clicking save showing error

Merci à l'avance.

+0

Essayez d'utiliser 'document.getElementsByTagName ("input");' – Feathercrown

+0

il n'a pas travaillé. J'ai édité ma question – ganesh

Répondre

0

Vous pouvez utiliser querySelector pour obtenir l'article via des sélecteurs CSS (nom de la classe par exemple), puis vous pouvez mettre à jour la valeur de l'entrée de texte. Assurez-vous que le document DOM est chargé avant d'appeler cette fonction

Edit: Semble certains pepole confrontés au même problème, un solution suggestes à faire:

document.getElementById('{!$Component.formName.pInput1}').value = "test"; 
+0

J'ai déjà essayé.par exemple: Il définit la valeur du nom de famille dans le formulaire de contact et se sent comme si cela a fonctionné. Lorsque je clique sur enregistrer, il suffit de le vider et de le montrer comme obligatoire! :-( – ganesh

+0

Pouvez-vous coller le HTML à jsfiddle ou alors? – Tareq

+0

ici le problm est, quand nous appelons * {! $ Component.formName.pInput1} * à l'apex, cela fonctionne.Quand nous appelons cela après le rendu ça n'a pas fonctionné. – ganesh

0

En utilisant InspectElement dans la console du navigateur, vous pouvez vérifier la position de la zone de texte que vous essayez d'obtenir et de créer un sélecteur CSS qui peut être utilisé dans la fonction document.querySelector() de JavaScript. Optez pour le parent cohérent qui ne change pas à chaque fois. Par exemple, si votre zone de texte apparaît dans une div avec classe xyz comme ceci:

<div class="xyz"> 
    <input name="changingname" /> 
</div> 

Vous pouvez faire le sélecteur comme celui-ci:

var ele = document.querySelector('.xyz>input'); 

Et vous pouvez définir ce que la valeur que vous voulez comme celui-ci :

ele.value = "your value"; 
+0

Il fonctionne dans un document html normal, mais dans Salesforce, il définit la valeur dans la zone de texte, mais il vide quand je clique sur Enregistrer – ganesh

+0

Pouvez-vous fournir un lien vers le formulaire hébergé? – owaisafaq

+0

son in force.com. informations d'identification. :-( – ganesh