TypeError:事件处理程序是否处于“更改”状态。工作正常吗?

时间:2019-01-14 10:47:56

标签: javascript dom

我正在对以下方法进行单元测试:

const initImageUpload = () => {
  const input = document.querySelector('.file-input');
  const fileName = document.querySelector('.file-name');
  if (input) {
    input.addEventListener('change', () => {
      fileName.classList.remove('is-invisible');
    });
  }
};

但是当我触发.change()时,我得到一个错误:

let inputImage = document.querySelector('.file-input');
let inputImageFileName = document.querySelector('.file-name');

// WHEN
inputImage.change();
await Promise.resolve().then(); // wait two cycles of the PromiseJobs queue
// THEN
console.log('IMAGE FILENAME: ', inputImageFileName.outerHTML);

**TypeError: inputImage.change is not a function**

我在哪里错?输入字段上的change()是否正常工作?

感谢您的反馈

1 个答案:

答案 0 :(得分:0)

每个评论链接(重复)

Vanilla JS解决方案:

var el = document.getElementById('changeProgramatic');
el.value='New Value'
el.dispatchEvent(new Event('change'));