2010-12-07 11 views
1

Ich schreibe ein Javascript, das die Benutzereingabe und validiert sie als Zahl überprüft, und dies ist meine Funktion:Javascript Variablen

<script type="text/javascript"> 
function checkThis(field) 
{ 
    if(isNaN(field.value)) 
    { 
     alert(field.value + ' is an illegal value. Insert a number'); 
    } 
} 
</script> 

Jetzt möchte ich, wenn die Bedingung erfüllt ist, zur Wiederherstellung der letzten getippt Wert, zum Beispiel: wenn der Benutzer 123 eintippt, ist die Bedingung falsch, aber wenn der Benutzer 123a eingibt, ist die Bedingung wahr und die Warnung wird ausgelöst. Ich möchte, nach dem Alarm, wird der Wert des Feldes 123

Dies ist der Code des Feldes ist:

<input type="text" onkeyup="checkThis(this)" /> 

Kann dies geschehen?

+0

Sie müssen den vorherigen Wert speichern, und Sie müssen den Wert des Felds festlegen. Mit welchem ​​Teil der Aufgabe haben Sie Probleme? –

Antwort

2
<script type="text/javascript"> 
var prevValues = [] 
function checkThis(field) 
{ 
    if(isNaN(field.value)) 
    { 
    alert(field.value + ' is an illegal value. Insert a number'); 
    var prevValue = prevValues[field] || "" 
    field.value = prevValue 
    } 
    else 
    { 
    prevValues[field] = field.value 
    } 
} 
</script> 
2

Obwohl ich stark empfehlen würde, Dialogfelder zu verwenden, um den Benutzer über einen Eingabefehler zu informieren. Es ist störend, irritierend und frustrierend, unterbrochen zu werden, während Sie tippen. Verwenden Sie etwas weniger aufdringliche Farben oder ein kleines Symbol, das angezeigt wird, wenn der Benutzer tippt.