1

Ich muss einen Wert des Textfelds mit einer JAVASCRIPT-Funktion festlegen, nachdem die Seite gerendert wurde. Ich habe versucht, eine ID des Textfelds zu bekommen, aber es ändert sich bei jeder Ladung. Gibt es eine Möglichkeit, den Wert des Textfelds festzulegen? Es ist wahrscheinlich, dass ich wie eine Erweiterung erzeuge, die ich brauche, um den Wert der Eingabe festzulegen und das Feld auszuwählen.Wert der Textbox nach render - force.com setzen

Ich versuchte Queryselctor. Beispiel:

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

Es legt den Wert des Nachnamens in Kontaktformular und fühlt sich an wie es funktioniert. Wenn ich auf Speichern klicke, wird es einfach leer und als Pflichtfeld angezeigt! Aber wenn ich etwas in ein Textfeld eintippe und dann meine Funktion zum Setzen von Werten verwende, hat es funktioniert.

Dies ist der Code, der vom Außendienst generiert wird.

<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> 

Ich habe Bilder als Referenz beigefügt.

Einstellung Wert von Textbox von der Konsole

Value Updated in form

Wert successfuly in Textfeld gesetzt.

seting value from console

Nach speichern Schaltfläche klicken, fild die Textbox leer werden und zeigt mandratory Fehler!

after clicking save showing error

Vielen Dank im Voraus.

+0

Try 'document.getElementsByTagName ("Input") verwendet;' – Feathercrown

+0

Es funktionierte den Ball hielt. Ich habe meine Frage bearbeitet! – ganesh

Antwort

0

Sie können querySelector verwenden, um das Element über CSS-Selektoren (Klassenname zum Beispiel) zu erhalten, dann können Sie den Wert der Texteingabe aktualisieren. Stellen Sie sicher, dass das Dokument DOM geladen wird, bevor Sie diese Funktion aufrufen

Edit: scheint einige pepole das gleiche Problem konfrontiert, ein solution suggestes zu tun:

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

Ich habe das schon probiert.Zum Beispiel: Es legt den Wert des Nachnamens im Kontaktformular fest und fühlt sich an, als ob es funktioniert. Wenn ich auf Speichern klicke, wird es einfach leer und als Pflichtfeld angezeigt! :-( – ganesh

+0

Kannst du den HTML-Code in jsfiddle oder so einfügen? – Tareq

+0

hier ist das Problem, wenn wir * {! $ Component.formName.pInput1} * im Apex aufrufen, funktioniert das. Wenn wir dies nach dem Rendern aufrufen, hat es nicht funktioniert. – ganesh

0

Mit InspectElement im Browser-Konsole können Sie prüfen, die Position der Textbox, die Sie versuchen zu erhalten, und erstellen Sie einen CSS-Selektor, der in der Funktion document.querySelector() von JavaScript verwendet werden kann. Entscheiden Sie sich für den konsistenten Elternteil, der sich nicht jedes Mal ändert. Zum Beispiel, wenn Ihr Textfeld erscheint in einem div mit der Klasse xyz wie folgt aus:

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

Sie den Wähler wie diese machen kann:

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

Und dann können Sie festlegen, was Wert du so wollen :

ele.value = "your value"; 
+0

Es funktioniert in normalen HTML-Dokument, aber in Salesforce, Es setzt Wert in Textfeld, aber es leer, wenn ich auf Speichern klicken. – ganesh

+0

Können Sie einen Link zu dem gehosteten Formular? – owaisafaq

+0

seine inforce.com.Sie Live-Link aufgrund nicht sehen können Referenzen. :-( – ganesh

Verwandte Themen