Erkennen leeren Wert für die Eingabeaufforderung
Zu erkennen, wie der Wert leer, wenn der Benutzer drückt ok auf Aufforderung (und schon leert sich das Feld Eingabeaufforderung)? Ich muss überschreiben Sie den alten Wert mit dem neuen (leeren) Wert. Ich bin dabei:
var oldVal = 'something';
var newVal = prompt("Enter new value:", oldVal);
Derzeit gibt null zurück, wenn der Benutzer leert Wert und klickt "ok".
Aber zur gleichen Zeit, die ich brauche, um zu überprüfen für null-Wert, da klickt der Benutzer auf 'Abbrechen', es wird null zurückgegeben, was ich nicht will, als neuen Wert.
prompt
nicht NULL zurück, wenn die Eingabe leer ist und OK gedrückt wird; es gibt die leere Zeichenfolge.InformationsquelleAutor Toniq | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht wieder
null
wenn der Benutzer trifft, OK - es wird eine leere Zeichenfolge zurückgeben. Sie sind wahrscheinlich nicht die Prüfung der Rückgabewert richtig. Wenn Sie möchten, um zu testen, zwischen den drei anderen hin-und Staaten, die Sie tun können, wie diese:Arbeiten demo: http://jsfiddle.net/jfriend00/Kx2EK/
Ihrem Kommentar darauf hin, dass Sie über diesen code zu testen, das Ergebnis:
Wenn der Benutzer löscht das Feld aus und drückt auf OK, newVal wird
""
(eine leere Zeichenfolge).!newVal
wirdtrue
so dass Sie zurückfalse
. Eine leere Zeichenfolge ist ein falsey Wert wienull
. Sie benötigen mehr explizit prüfen fürnull
wie diese:Arbeiten demo dieser Logik: http://jsfiddle.net/jfriend00/ynwBx/
Hinweis: ich bin mit
===
um zu verhindern, dass der javascript-interpreter zu tun, jede Art casting, da möchte ich nur explizit zu überprüfen, fürnull
.Sie scheinen nicht zu verstehen, dass
!newVal
wird auch der einem leeren string entsprechen, damit Sie nicht in die Unterscheidung zwischen dennull
(Abbrechen-Taste) und eine leere Zeichenfolge (ok-Taste). Ich habe code Hinzugefügt, um meine Antwort, die Ihnen zeigen, wie zu tun, was Sie gefragt haben.Vielen Dank, es funktioniert jetzt!
Deine demo funktioniert nicht auf dem neuesten Safari
Was genau funktioniert nicht? Was sehen Sie, auf welche Taste welchen Wert das Feld, in dem demo?
InformationsquelleAutor jfriend00
In den meisten Browsern prompt zurück
null
wenn der Benutzer die Taste Abbrechen, aber in einigen (Safari, für ex.) es gibt eine leere Zeichenkette. Wenn Benutzer text ein, und Tippen Sie auf ok, Eingabe, Rückkehr eingegebenen text, wenn der Benutzer auf ok geklickt, ohne die Eingabe von text, wird es wieder leerer string.InformationsquelleAutor
Ein Wenig alt, aber es kann sich lohnen, einfach ein test für die Länge der Zeichenfolge in der gleichen if () - Anweisung
Überprüfen Sie, ob beide für löschen und einen leeren Eintrag.
&&
, nicht binäre&
(obwohl ich nicht sicher bin, ob&
funktioniert auch hier)InformationsquelleAutor Kaitensatsuma
Sie können überprüfen Sie den Wert null in prompt-box... wenn das Feld Eingabeaufforderung eine null zurück , dann ist es die Rückkehr an die gleiche Funktion...
InformationsquelleAutor sebastian
Einfach um zu sehen, ob beide Abbrechen oder ok mit einem leeren string
InformationsquelleAutor Nebulosar