AJAX自动完成更改值不会触发它[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX自动完成更改值不会触发它[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在编写一个tampermonkey脚本来自动填充字段。它是一个事件管理站点,所以有像group,summary等字段。我想要更改的字段有这个ID:名为sys_display.incident.assigned_to,我可以使用默认的document.getElementById(assignedTo)更改它的值。价值=“某人”。但由于它是一个自动完成字段,每当我通过JS更改它时,它似乎不会触发AJAX自动完成本身,因为它验证了这一点并使用此信息填充其他字段。

要素如下:

<input id="sys_display.incident.assigned_to" name="sys_display.incident.assigned_to" aria-labelledby="label.incident.assigned_to" type="text" autocomplete="off" autocorrect="off" value="Gabriel Bocon" ac_columns="email" ac_order_by="name" data-type="ac_reference_input" data-completer="AJAXTableCompleter" data-dependent="assignment_group" data-ref-qual="" data-ref="incident.assigned_to" data-ref-key="null" data-ref-dynamic="false" data-name="assigned_to" data-table="sys_user" class="form-control element_reference_input" style="; width:160px" spellcheck="false" onfocus="if (!this.ac) addLoadEvent(function() {var e = gel('sys_display.incident.assigned_to'); if (!e.ac) new AJAXTableCompleter(gel('sys_display.incident.assigned_to'), 'incident.assigned_to', 'assignment_group', ''); e.ac.onFocus();})" aria-required="true" tabindex="-1">

当我单击它(焦点)时,它会触发自动完成并更新接收以下属性的DOM:

role="combobox" aria-autocomplete="list" aria-owns="AC.incident.assigned_to" aria-activedescendant=""

我当前的脚本片段是这样的:

setTimeout(function(){

        var analyst = GM_getValue('analyst');
        var assignedTo = document.getElementById("sys_display.incident.assigned_to");

        assignedTo.setAttribute("tabindex", "-1");

        setTimeout(function() {
            assignedTo.value = analyst;
        }, 1000);

}

我设置了一个超时,以便页面完全加载,即使脚本设置为仅在空闲时运行。我甚至设置了一个tabindex,所以我可以插入和退出它,但无济于事。我尝试使用jQuery来触发它,这也没有用。

我不是专家,但是我被困住了,非常感谢任何帮助。

答案

对不起,似乎我无法专注于元素,因为我保持DEV控制台打开,正如已经在这里回答:https://stackoverflow.com/a/15859155/8633664

以上是关于AJAX自动完成更改值不会触发它[重复]的主要内容,如果未能解决你的问题,请参考以下文章

手动触发 jQuery 自动完成

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

Ajax AutoCompleteExtender文本框未在边缘浏览器中触发文本更改事件

如何使用 AJAX 自动完成触发 JQuery

Internet Explorer 的“自动完成”功能不会触发 JavaScript 事件

带有ajax数组的JQuery $.when [重复]