【问题标题】:Change input value using javascript in a form built with Aura在使用 Aura 构建的表单中使用 javascript 更改输入值
【发布时间】:2019-04-04 08:42:50
【问题描述】:

我有一个使用 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 注意到新数据?

【问题讨论】:

  • 这里可以使用change事件。 See @ MDN
  • 我根本不知道“气场”。但我可以猜测框架正在侦听输入事件,因此仅更改值是不够的。有一个类似的issue 也许它可以为您提供解决方案的方向。此外,还有专门的 stackexchange site for salesforce 也许他们可以给你更好的答案。

标签: javascript aura-framework


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多