2013-04-06 65 views
10

在Internet Explorer中,當您開始在文本框中輸入內容時,會顯示一個像X的小按鈕。點擊此圖標時如何檢測事件?是否有事件類型?檢測IE中的texbox清除事件。當IE特定的清除框被點擊時,如何在IE(Internet Explorer)中清除輸入類型=「文本」(文本框)?

<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

+0

我發現這個解決方案真正幫助: http://stackoverflow.com/a/14498921/1895428 – pmrotule 2014-06-06 21:01:15

+0

張貼的答案 – Andrew 2014-07-29 23:36:50

回答

7

我不知道這個小x般的按鈕特別活動,我不認爲它的存在,但你可以(在你的情況oninput="qsearchLookup(this.value)")使用input事件趕上這個變化。

+0

我添加的圖像;似乎事件沒有捕獲它 – Andrew 2013-04-06 01:55:57

+3

它在IE10中工作,並且我認爲這個(x)按鈕只存在於IE10中。我不認爲IE對這個按鈕或事件有特殊的DOM元素,但是如果你想要,你可以用特殊的CSS隱藏它:':: - ms-clear {display:none; }' – outcoldman 2013-04-06 04:29:53

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

這個工程的IE10(輸入)和IE8(爲propertyChange),但不是IE9

其實我固定它用鼠標按下事件,不漂亮IE9,但和MouseUp是唯一事件火上

2

我不確定,如果仍有人正在尋找解決方案。不幸的是,沒有事件處理程序可用於清除(X)圖標,但下面的代碼段/技巧爲我工作。 CSS完成隱藏明確(X)圖標,如果你不想隱藏明確(X)圖標但是需要處理那麼JS代碼片段會help.Verified在IE 8,9 ,10,11和正常工作

CSS技巧:

#textFieldId::-ms-clear {display: none;} - 對於一個特定的文本字段

input[type=text]::-ms-clear { display: none; } - 在範圍內的所有文本字段

OR

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); 
    });