2013-04-06 6 views
10

Im Internet Explorer wird eine kleine x-ähnliche Schaltfläche angezeigt, wenn Sie mit der Eingabe in das Textfeld beginnen. Wie erkenne ich das Ereignis, wenn dieses Symbol angeklickt wird? Gibt es einen Ereignistyp?Erkenne texbox clear-event in IE. Wie lösche ich den Eingabetyp = "Text" (Textbox) im IE (Internet Explorer), wenn IE-spezifische Clear-Box angeklickt wird?

<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

ich diese Lösung wirklich hilfreich: http://stackoverflow.com/a/14498921/1895428 – pmrotule

+0

post it als Antwort – Andrew

Antwort

7

Ich weiß nicht, über besonderes Ereignis für diese kleine x-like-Taste, und ich glaube nicht, dass es existiert, aber Sie können input Ereignis (oninput="qsearchLookup(this.value)" in Ihrem Fall) verwenden, um Fange diese Veränderung.

+0

I Bild hinzugefügt; scheint wie Ereignis es nicht fängt – Andrew

+3

Es funktioniert in IE10, und ich dachte, dass diese (x) Schaltfläche nur in IE10 existiert. Ich denke nicht, dass IE spezielle DOM-Elemente für diese Schaltfläche oder dieses Ereignis hat, aber wenn Sie möchten, können Sie es mit speziellen CSS ausblenden: ':: - ms-clear {display: none; } ' – outcoldman

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

dies für IE10 funktioniert (Eingang) und IE8 (property), aber nicht für ie9

ich es mit dem Mousedown-Ereignis für ie9 tatsächlich fixiert ist, nicht schön, aber das und mouseup sind die einzigen Ereignisse, die Feuer auf es

2

Bin nicht sicher, ob noch jemand nach einer Lösung sucht. Leider ist kein Event-Handler für die clear (X) Ikone verfügbar, jedoch unter Code-Snippet/Tricks funktioniert für mich. CSS zur Vervollständigung des klar (X) Symbol verstecken, und wenn Sie nicht möchten, dass das klar (X) Symbol aber dann Schnipsel JS-Code behandeln müssen verstecken würde help.Verified in IE 8,9 , 10,11 und es funktioniert gut

CSS Trick:

#textFieldId::-ms-clear {display: none;} - Für ein bestimmtes Textfeld

oder

input[type=text]::-ms-clear { display: none; } - für alle Textfelder in Umfang

ODER

JavaScript Trick (das Textfeld Wert zurücksetzen/leer zu leeren und das HTML-Ereignis KeyUp ausgelöst. Dementsprechend können Sie pro Ihre Notwendigkeit ändern)

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