1

我有一个使用 aura 构建的表单(Salesforce JS 框架)的输入:

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

从视觉上看,它会更改输入中的值,但在保存时不会考虑它,就好像我没有更改任何内容一样。

我怎样才能做到这一点?我是否需要触发特定事件以便 aura 注意到新数据?

4

1 回答 1

0

您需要创建一个字符串类型的属性。

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

将属性传递给输入标签的 value 属性。

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

现在,每当您想更改输入中的值时,您都可以简单地从您的 javascript 函数中执行此操作:

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

重要提示:由于称为 Locker 服务的安全架构,Salesforce 框架不允许 DOM 级别操作。不建议遵循 DOM 级别的操作。相反,请遵循上述基于状态的方法。

于 2020-08-03T11:56:32.690 回答