【问题标题】:Detect texbox clear-event in IE. How do I clear the input type="text" (textbox) in IE (Internet Explorer) when IE-specific clear-box is clicked?检测 IE 中的文本框清除事件。单击特定于 IE 的清除框时,如何清除 IE(Internet Explorer)中的输入类型 =“文本”(文本框)?
【发布时间】:2013-03-28 13:42:06
【问题描述】:

在 Internet Explorer 中,当您开始在文本框中输入内容时,会显示一个类似 x 的小按钮。单击此图标时如何检测事件?有事件类型吗?

<input type="text" value ="" id ="qsearch" name="qsearch"
    onBlur="qsearchLookup(this.value);" OnClick="qsearchLookup(this.value);"
    onkeyup="qsearchLookup(this.value)"  size="26">

function qsearchLookup(searchVal){
    document.getElementById("qsearch").value="";
}

【问题讨论】:

标签: javascript textbox


【解决方案1】:

这对我来说效果很好:)

$input.addEventListener('mouseup', function(){
    setTimeout(function(){
        if ($input.value === '') do_stuff();
    }, 1)
});

$input 是对输入元素的引用。

【讨论】:

    【解决方案2】:

    不确定,是否仍有人在寻找解决方案。不幸的是,clear(X) 图标 没有可用的事件处理程序,但是下面的代码 sn-p/tricks 对我有用。 CSS 来完成隐藏 clear(X) 图标,如果你不想隐藏 clear(X) 图标 但需要处理 JS 代码 sn-p 会有所帮助。在 IE 8、9、10、11 中验证,它工作正常

    CSS 技巧:

    #textFieldId::-ms-clear {display: none;} -- 对于特定的文本字段

    input[type=text]::-ms-clear { display: none; } -- 适用于范围内的所有文本字段

    JavaScript 技巧(将文本字段值重置为空/空白并触发 html 事件 KeyUp。因此您可以根据需要进行更改)

    $('#textFieldId').bind("mouseup", function() {
            var $input = $(this);
            var oldValue = $input.val();
            if (oldValue == "") {
                return;
            }
            setTimeout(function() {
                var newValue = $input.val();
                if (newValue == "") {
                    $input.trigger("keyup");
                }
            }, 1);
        });
    

    【讨论】:

    • 谢谢。这个 JS 是我唯一可以在 Edge 中工作的东西(IE11 已经通过另一个事件为我工作了)。我自己永远不会想到超时部分(荒谬,这似乎是必需的)。
    【解决方案3】:
    input.on('input propertychange',function(e){})
    

    这适用于 ie10(输入)和 ie8(属性更改),但不适用于 ie9

    我实际上用 mousedown 事件为 ie9 修复了它,不是很漂亮,但它和 mouseup 是唯一触发它的事件

    【讨论】:

      【解决方案4】:

      我不知道这个类似 x 的小按钮的特殊事件,我认为它不存在,但您可以使用input 事件(在您的情况下为oninput="qsearchLookup(this.value)")来捕捉这个变化。

      【讨论】:

      • 我添加了图片;似乎事件没有抓住它
      • 它在IE10中工作,我认为这个(x)按钮只存在于IE10中。我不认为 IE 对此按钮或事件有特殊的 DOM 元素,但如果你愿意,你可以用特殊的 css 隐藏它:::-ms-clear { display: none; }
      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2021-11-25
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 2012-06-26
      相关资源
      最近更新 更多