1

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

我试过查询选择器。例子 :

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>

我附上了图片供您参考。

从控制台设置文本框的值

值更新形式

文本框中的值已成功设置。

从控制台设置值

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

点击保存后显示错误

提前致谢。

4

2 回答 2

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";
于 2016-11-14T13:45:07.123 回答
0

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

编辑:似乎有些人面临同样的问题,一个解决方案建议这样做:

document.getElementById('{!$Component.formName.pInput1}').value = "test"; 
于 2016-11-14T13:37:48.353 回答