【问题标题】:IE11 triggers input event when value contains umlaut当值包含变音符号时,IE11触发输入事件
【发布时间】:2018-07-10 16:04:20
【问题描述】:

我有一个奇怪的问题,

我们正在通过ajax将内容加载到页面,响应包含一些带有值的输入标签

<input type="text" value = "cédille" id="textField">

并将 inputevent 添加到输入组件中。事件应在粘贴、剪切时触发。

$("#textField").on('input',function(){...});

预期文本字段的任何变化都必须触发输入事件侦听器。但是当输入值包含变音符号(如ä,é)时,加载页面时触发事件。

JS 小提琴:https://jsfiddle.net/Subbu__S/qs7oz0g0/5/

仅在 IE11 中出现, 签入版本:11.0.49、11.0.50(可能是其他版本)

非常感谢提供任何解决方案。

【问题讨论】:

  • @Pete 如果使用支持 é 的字符编码,则不需要任何额外的“编码”或 HTML 实体。
  • 无法确认 IE 版本 11.786.somethingorother 中的行为,请在 Win 10 上更新版本 11.0.49 - 只有在我手动更改字段值时才会触发您的小提琴中的更改处理程序。
  • 小提琴中的更改处理程序仅在我手动更改字段值时触发,这意味着什么?仅在我手动更改字段时触发,有没有可能?更多 over 事件应在粘贴时触发,也应在剪切时触发。
  • 意味着,我无法确认页面加载后会立即触发,分别。输入字段已创建 - 对我来说不会发生,只有当我通过输入更改字段内容然后离开该字段时,我才会收到警报。
  • 也许这对你有帮助:github.com/gilamran/JQuery-Plugin-AnyChange

标签: jquery events input internet-explorer-11 eventtrigger


【解决方案1】:

我在 JQuery 自动完成方面遇到了同样的问题,但没有找到任何 correct 这样做的方式,因为它是浏览器错误。

$("#test").autocomplete({
    //some code
    select: function( event ) {
        onSelectDoSomething();
        return false;
    }
});

如果每个加载的输入 #test 的值带有变音符号,则调用 onSelectDoSomething()

我添加了额外的 JavaScript 值 var test_click = false 以及 #test 点击事件。

所以它看起来像这样

var test_click = false;

$( "#test" ).click(function() {
    test_click = true;
});

$("#test").autocomplete({
    //some code
    select: function( event ) {
        if(test_click) {
            onSelectDoSomething();
        }
        return false;
    }
});

这不是我推荐的解决方案,但在不降低 IE 兼容性或切换浏览器的情况下,这是我能想到的唯一解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多