2017-07-26 2 views
1

Ich möchte eine Funktion machen, wenn die Eingabe-Taste auf deaktiviertem Element gedrückt wird.Element Tastendruck, wenn die Maus schwebte

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    alert("enter pressed"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" disabled/>

ich auf schweben Methode versuchen aber ich kann nicht succesfull.

Dies ist jsFiddle Link: https://jsfiddle.net/vL9emkzL/

bearbeiten zweite Geige Link: https://jsfiddle.net/vL9emkzL/1

+3

'disabled' Elemente können Ereignisse nicht erhöhen, so was Sie nicht zu tun versuchen ist. Als Workaround können Sie statt dessen 'readonly' verwenden, was aber abhängig von der Verwendung der Eingabe einen Knock-on-Effekt haben kann. –

+0

@RoryMcCrossan Es funktioniert nicht mit readonly, weil das Element auf den Tastendruck fokussiert werden muss Veranstaltung. - Meine schlechte, schlechte Manipulation. es funktioniert gut – Alexis

+0

Sir, wenn ich readonly mache ich kann die Eingabe ändern Blick auf diesen Code-Block https://jsfiddle.net/vL9emkzL/1/ –

Antwort

1

Verwendung nur lesbar statt deaktiviert. Deaktivierte Elemente können keine Ereignisse ausgeben.

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    alert("enter pressed"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" readonly/>

+0

Die readonly funktioniert nicht bei diesem Code-Block https://jsfiddle.net/vL9emkzL/1 –

+0

@ ZibianDomichi seine Arbeit. Wenn ich die Eingabetaste drücken, wird die Warnung angezeigt. –

+0

Aber es ist nicht readonly Sie können die Eingabewerte ändern. Ich möchte nicht zur Eingabe wechseln. –

1

So, hier ist das, was wir tun können:

  1. Wie Sie erwähnt, wird der Benutzer einen Wert in das Eingabefeld ein und drücken Sie dann eingeben
  2. So Wenn der Benutzer die Eingabetaste drückt, deaktivieren Sie dieses Feld und öffnen Sie das Popup.

Also anstatt es nur lesbar oder deaktiviert von Anfang an zu machen, können wir es nur deaktiviert, wenn er Eingabe drückt.

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    $(this).prop('disabled', true); 
 
    console.log("enter pressed and field is disabled."); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" />

Verwandte Themen