Измените входное значение, используя JavaScript в форме, созданной с помощью Aura

У меня есть вход в форме, построенной с помощью ауры (Salesforce JS Framework):

<input class=" input uiInput uiInputText uiInput--default uiInput--input" type="text" aria-describedby="5284:0" placeholder="" id="7:4790;a" data-aura-rendered-by="17:4790;a" data-aura-class="uiInput uiInputText uiInput--default uiInput--input" data-interactive-lib-uid="54" aria-required="true">

Мне нужно изменить значение этого ввода с помощью JavaScript. Однако при выполнении:

document.getElementById("7:4790;a").value = "random value";

Визуально он изменяет значение на входе, но при сохранении не учитывается, как будто я ничего не менял.

Как мне этого добиться? Нужно ли запускать определенное событие, чтобы аура обращала внимание на новые данные?

0 ответов

Вам необходимо создать атрибут строкового типа.

<aura:attribute name="myInputValue" type="String" />

Передайте атрибут в свойство value входного тега.

<input .... value="{! v.myInputValue}" />

Теперь, когда вы хотите изменить значение во вводе, вы можете просто сделать это из своей функции javascript:

component.set('v.myInputValue, "My new String" />

Важное примечание. Платформы Salesforce не допускают манипуляции на уровне DOM из-за архитектуры безопасности, называемой службой Locker. Не рекомендуется следовать манипуляции на уровне DOM. Вместо этого используйте подход, основанный на состоянии, как указано выше.

Другие вопросы по тегам