在render - force.com之后设置文本框的值

时间:2016-11-14 13:31:43

标签: javascript salesforce visualforce force.com aura-framework

我需要在呈现页面后使用JAVASCRIPT函数设置文本框的值。我尝试获取文本框的ID,但它会在每次加载时继续更改。有没有可能的方法来设置文本框的值?我可能正在创建一个扩展,我需要设置输入和选择字段的值。

我试过了Queryselctor。例如:

  

getElementsByTagName('input')1。value =“testRecord”;

它设置联系表单中的姓氏值,感觉它有效。当我点击保存时,它只是清空它并显示为强制性!但是,当我在文本框中键入一些东西,然后我使用我的函数来设置值时,它工作。

这是销售人员生成的代码。

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

我已附上图片供您参考。

从控制台设置文本框的值

Value Updated in form

在文本框中成功设置值。

seting value from console

单击“保存”按钮后,文本框fild变为空并显示强制错误!

after clicking save showing error

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以使用querySelector通过CSS选择器(例如类名)获取项目,然后您可以更新文本输入的值。 在调用此函数之前,请确保已加载文档DOM

编辑: 似乎有些人面临同样的问题,solution建议要做:

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

答案 1 :(得分:0)

在浏览器控制台中使用InspectElement,您可以检查您尝试获取的文本框的位置,并创建可在JavaScript的document.querySelector()函数中使用的CSS选择器。选择每次都不会改变的一致父母。例如,如果您的文本框出现在类 xyz 的div中,如下所示:

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

您可以像这样制作选择器:

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

然后你可以像这样设置你想要的任何值:

ele.value = "your value";