简体   繁体   中英

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?

In Internet Explorer, there is a little x-like button is shown, when you start typing in the textbox. How do I detect the event when this icon is clicked on? Is there an event-type?

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

在此处输入图片说明

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

Am not sure, if still someone is looking for a solution. Unfortunately there is no event handler available for the clear(X) icon , however below code snippet/tricks worked for me. CSS to complete hide the clear(X) icon and if you don't want to hide the clear(X) icon but need to handle then JS code snippet would help.Verified in IE 8,9,10,11 and it works fine

CSS trick:

#textFieldId::-ms-clear {display: none;} -- For a particular text field

or

input[type=text]::-ms-clear { display: none; } input[type=text]::-ms-clear { display: none; } -- for all text fields in scope

OR

JavaScript trick (to reset the text field value to empty/blank and fire the html event KeyUp. Accordingly you can change per your need)

$('#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);
    });

This worked pretty well for me :)

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

$input being a reference to the input element.

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

this works for ie10 (input) and ie8 (propertychange) but not for ie9

i actually fixed it for ie9 with the mousedown event, not pretty ,but that and mouseup are the only events that fire on it

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM