Hallo Leden,


Momenteel werk ik aan form en wil hier een aantal functie in verwerken.
Waar ik echter niet uikom is een functie die na het drukken van de toets escape het input veld leeg maakt en het veld verlaat en de cursor stopt met knipperen.


Dit is wat ik heb:


<html>
<body>

<input type="text" placeholder="search" id="search">

<script type="text/javascript">
$(function(){
$("#search").keyup(function(e){
if(e.keyCode == 27){
$(this).val("");
}
});
});
</script>
</body>
</html> 


Met vriendelijke groe,


Jop
Wellicht kan je een focus gooien op een hidden field?
Het valt te proberen.
Desnoods is het veld niet type="hidden" maar heb je hem met CSS verborgen (visibily: hidden); oid.

Beste Eddy,

Het veld hoeft niet gehaal weg, alleen een clear erop van de value wat nu al gebeurd. daarnaast moet hij gewoon het inputveld verlaten. (zodat de cursor niet meer knipperd.

[size=xsmall]Toevoeging op 20/07/2015 22:53:23:[/size]

Opgelost,

toegevoegd:

$(this).prop('readonly', 'readonly');
Je snapt niet wat ik bedoel Jop Geen (leuke achternaam dan).
De focus (.focus()?) op een ander veld gooien betekent dat het knipperstreepje in jouw veld weg is.
Je wilt hem niet zien: dus zet je dat andere veld buiten beeld. Dan zie je niets knipperen (al doet dat het wel, buiten het zichtveld van de gast).

Het gaat dus om .focus() !


Even snel een Codepen (soort van Fiddle) opgezet: http://codepen.io/anon/pen/xGaOLR


Rechtsbovenin staat de kleine input (nu kan je nog net zien wat je doet)
Moet keyup niet iets als keypressed zijn?
Eddy E op 21/07/2015 09:02:43

Je wilt hem niet zien: dus zet je dat andere veld buiten beeld. Dan zie je niets knipperen (al doet dat het wel, buiten het zichtveld van de gast).


Je hoeft de focus niet op een ander veld te zetten. Je wilt enkel de focus van het veld afhalen en daar bestaat blur() voor:

$('#search').keydown(function (e) {
    if (e.keyCode == 27) {   
        $(this).val('');
        this.blur();
    }
});

Reageren