2016-09-21 5 views
-1

Hier ist mein Code:Wie kann ich überprüfen, ob der Eingang leer war?

$("input").on('keyup', function(ev){ 
 
     if(/(8)/.test(ev.which) && this.value == ''){ 
 
     alert('when you pressed backspace, the input was empty already'); 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

Alles, was ich, dies zu tun bin versucht, ist die Umsetzung:

, wenn Sie "Rücktaste" gedrückt wird, war der Eingang bereits leer

Eigentlich kann ich Englisch nicht sehr gut, vielleicht die richtige sen tenz dies:

, wenn Sie „Rücktaste“ gedrückt wird, hat die Eingabe leer, bevor Sie

drücken

Ok, ein Zeichen in das Eingabe schreiben, dann Backspace drücken, was passiert? Dieses Zeichen wird entfernt und diese Warnung wird angezeigt. Ich muss einen Schritt zwischen ihnen machen, ich meine, ich brauche zwei getrennte Rückräume für diese Ereignisse.

Eine Rücktaste zum Entfernen des letzten Zeichens, eine Rücktaste zum Anzeigen dieser Warnung. Wie kann ich das machen?

+2

... warum ... das ist wie der Benutzer erklären, sie A gedrückt, wenn sie A drücken ... –

+0

@KevinB: Die gute alte MS Word Paperclip kommt :) –

+0

in dem Sinne @ KevinB Alles was ich versuche ist [das] (http://stackoverflow.com/questions/39616516/how-to-check-remove-an-element/39617457?noredirect=1#comment66541764_39617457) –

Antwort

3

Das Ereignis, das Sie suchen, ist keydown

$("input").on('keydown', function(ev){ 
 
     if(ev.which === 8 && this.value == ''){ 
 
     alert('when you pressed backspace, the input was empty already'); 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

UPDATE Sie können es mit class Griff auch:

$("input").on('keyup', function(ev){ 
 
     if(ev.which === 8 && this.value == '' && $(this).hasClass('empty-input')){ 
 
     $(this).removeClass('empty-input'); 
 
     alert('when you pressed backspace, the input was empty already'); 
 
     } else { 
 
     if (this.value == '') { 
 
      $(this).addClass('empty-input'); 
 
     } 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

+1

upvote für die richtige Antwort, aber ich muss hinzufügen, ich würde es hassen zu sehen dies in irgendeiner Software, die ich benutzen würde. –

+0

Ich stimme dir zu, niemand mag "Alarm" vielleicht ist es nur zum Testen oder Lernen. Ich werde das bei der Produktion nicht machen. – Mehdi

+0

Ja, Ihr Code funktioniert für das Beispiel in meiner Frage., Upvote, aber leider funktioniert es nicht wie erwartet für meinen [wirklichen Zweck] (http://stackoverflow.com/questions/39616516/how-to-check-remove) -an-element/39617457? noredirect = 1 # comment66541764_39617457) –

2

Verwenden Sie stattdessen keydown Ereignis!

Mit keyup ist der Wert von input bereits gelöscht, daher wird value=='' immer wahr sein.

$("input").on('keydown', function(ev) { 
 
    if (ev.which === 8 && this.value == '') { 
 
    alert('when you pressed backspace, the input was empty already'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

+0

Ja Ihr Code funktioniert für das Beispiel in meiner Frage., Upvote, aber leider funktioniert es nicht wie erwartet für meinen [wirklichen Zweck] (http://stackoverflow.com/questions/39616516/how-to-check-remove) -an-element/39617457? noredirect = 1 # Kommentar66541764_39617457) –

Verwandte Themen