2013-04-06 70 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); 
    });