在IE中检测文本框清除事件。当单击特定于IE的清除框时,如何清除IE(Internet Explorer)中的输入类型=“文本”(文本框)?

时间:2013-04-06 00:54:36

标签: javascript textbox clear

在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="";
}

enter image description here

4 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

我不确定,是否有人正在寻找解决方案。很遗憾, clear(X)图标 没有可用的事件处理程序,但是下面的代码段/技巧对我有效。要完成的CSS会隐藏 清除(X)图标 ,如果您不想隐藏 清除(X)图标 < / strong>但需要处理然后JS代码片段会有所帮助。在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);
    });

答案 2 :(得分:0)

这对我来说很好:)

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

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

答案 3 :(得分:-1)

input.on('input propertychange',function(e){})

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

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