gpt4 book ai didi

javascript - 更改占位符会触发 IE 10 中的输入事件

转载 作者:行者123 更新时间:2023-11-30 06:29:53 26 4
gpt4 key购买 nike

基本问题

input 事件 --calls--> update() --calls--> geoInput.receive() --triggers- -> 输入事件

解释

好吧,我遇到了一个奇怪的问题,它导致我的代码无限循环。我有以下 jQuery:

var geoInput = $('#Geo').on('input', function() {
_this._controller.update({
geo: this.value
});
}).get(0);

如您所见,它只是一个基本的事件监听器,它在我的 Controller 中调用一个更新函数。在更新函数的末尾是一个方法,它广播要更新的 geoInput 字段。这由以下处理:

geoInput.receive = function(formState) {
this.value = formState.geo;
this.placeholder = _this._placeholders.geo;
}

出于某种原因

this.placeholder = _this._placeholders.geo; 

正在触发该字段上的 input 事件。您可以看到这会产生什么问题,因为这会创建一个无限循环。我确信这是正在发生的事情,因为当我在该行之前 return 时,循环不会发生。另外,如果我改为说 keyup 事件,循环也不会发生。

问题

为什么会发生这种情况,我该如何解决?

我试过了!

我已经看了几个小时,并进行了很多搜索但无济于事。此代码在 Chrome 和 FF 中按预期工作。

最佳答案

有趣的是,如果您只是将一个项目添加到 INPUT 属性占位符或不是拉丁字母的值,则会发生 INPUT 事件。这是 IE 10 和 IE11 的问题

var $input = $('<input type="text" placeholder="Бубу"/>');
//or
var $input = $('<input type="text" value="世界へようこそ"/>');
$input.on('input',function(){
alert('input even occur');
});

关于javascript - 更改占位符会触发 IE 10 中的输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18389732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com