Измените входное значение, используя 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. Вместо этого используйте подход, основанный на состоянии, как указано выше.