jquery Javascript触发器更改突然退出工作

5lhxktic  于 2023-03-17  发布在  jQuery
关注(0)|答案(2)|浏览(102)

十年来,我一直在一个输入框上成功地使用这行代码:

var importDate = "03/07/2023";
$("#es-modal-very-important-date").val(importDate).trigger('change')

今天它停止工作了。它确实把日期放进了框里,但没有触发更改。所以网页无法识别日期。就像框需要用户点击或与日期选择器交互才能触发更改一样。
我还尝试了以下方法来触发更改,但运气不佳:

var myInput = document.getElementById("es-modal-very-important-date");
myInput.dispatchEvent(new Event("change"));

还有其他的选择吗?我只能认为建立这个网页(用于添加记录)的程序员改变了一些东西,导致触发器停止工作。我无法接触到程序员。我每天使用javascript自动添加大约100条记录。
我尝试了以下方法:

var importDate = "03/07/2023";
$("#es-modal-very-important-date").val(importDate).trigger('change')

以及

var myInput = document.getElementById("es-modal-very-important-date");
myInput.dispatchEvent(new Event("change"));

我期望它将importDate添加到输入框中,然后触发更改,以便网页可以识别更改。它确实添加了importDate,但网页无法识别它。

a1o7rhls

a1o7rhls1#

使用jQuery,试试这个怎么样?

$('#es-modal-very-important-date').change();
jm81lzqq

jm81lzqq2#

根据我的经验,在任何网页(包括React应用程序)上设置内容的唯一可靠方法是使用Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set,例如:

const set = (selector, value) => {
    const input = document.querySelector(selector);
    const nativeInputValueSetter = 
        Object.getOwnPropertyDescriptor(
            window.HTMLInputElement.prototype,
            "value"
        ).set;
    nativeInputValueSetter.call(input, value);
}

set('#es-modal-very-important-date', importDate)

相关问题