在 Safari 浏览器中,在输入事件处理程序中修改元素的值时不会触发更改事件

问题描述 投票:0回答:1

在输入元素的输入事件中修改元素的值时,Safari 浏览器中不会触发更改事件。

我使用了下面的代码块

`<input type="text" id="textid"\>

 <script\>
 var textcase = document.getElementById('textid');
 textcase.addEventListener('input', function(args) {
     document.getElementById('textid').value =document.getElementById('textid').value + "#";
 });
 textcase.addEventListener('change', function(){
    console.log('Change evet triggered');
 });
 </script\> `

复制过程:

  1. 在输入元素中输入一个值并退出焦点。
  2. 查看控制台窗口,更改事件未触发。

预期行为:

  1. 在输入元素的输入事件中修改元素的值时。更改必须在 Safari 浏览器中触发。
macos safari onchange html-input inputevent
1个回答
0
投票

我刚刚在 Safary 中遇到了同样的问题。 Firefox 和 Chrome 工作正常,但 Safari 不行。

你找到解决办法了吗?

到目前为止我能找到的唯一方法是手动创建“更改”事件并通过

element.dispatchEvent
处理程序中的
input
触发它。但就我而言,使用这个解决方案我无法实现我的目标,所以它不是我的选择。

© www.soinside.com 2019 - 2024. All rights reserved.