2016-09-20 5 views
0

Ich möchte eine linke Taste drücken, wenn der Benutzer auf ein Eingabetextfeld konzentriert. Bisher wählt mein Code nur den Standardwert aus, löst aber keinen Tastendruck auf der linken Seite aus. Ich brauche tatsächlich den Standardwert im Textfeld.Wie löst man einen Tastendruck in jQuery aus, wenn der Benutzer auf ein Textfeld fokussiert?

ich habe:

<label for="name">Name</label> 
<input id="name" type="text"> 
<label for="email">Email</label> 
<input id="email" type="email" value="@somemail.com"> 

Ich habe versucht:

$('#email').on('focus', function() { 
    $(this).trigger($.Event('keypress', {keyCode: 37})); 
}); 

basierend auf JQuery simulating keypress event on an input field, aber ohne Erfolg. Hier ist eine Geige: https://jsfiddle.net/c9n39r53/

Das möchte ich sehen, wenn das Formular auf dem Feld E-Mail-Eingang steht:

+0

Und was passiert, wenn der linke Pfeil gedrückt wird, haben Sie auch einen Event-Handler, oder erwarten Sie nur, dass der Cursor aus irgendeinem Grund bewegt wird? – adeneo

+0

Möchten Sie verhindern, dass jemand den '@ somemail.com'-Teil der Zeichenfolge ändert? Wenn das so ist, dann schreibe es einfach nicht in die '', lege es * neben * die' '. –

+0

Vielleicht ist das das? -> https://jsfiddle.net/adeneo/c9n39r53/2/ – adeneo

Antwort

0

Denn was ist mein Verständnis Ihr Plan ist es, die Platzierung des Cursors zu erzwingen am Anfang der E-Mail-Eingabe.

$('#email').on('focus', function() { 
    var elem = $(this) 
    setTimeout(function(){ 
    elem.get(0).setSelectionRange(0,0,0); 
    },100); 
}); 

Hier ist mein Update auf Ihrem fiddle

, die eine Lösung wie @adeneo vorgeschlagen. In der Tat ist sein besser, da es absolut keine Verzögerung hat.

Auf Ihrer Geige haben Sie auch JQuery vergessen.

Verwandte Themen