Eingabefelder überprüfung auf Summe
Maic
- javascript
0 Schorsch
Hi Ihr,
ich hab da ein kleines Problem und weiss im Moment keine Lösung:
Der User hat ein bestimmtes kontigent an Punkten. Sagen wir einmal 100. Diese werden recht oben angezeigt.
Er soll nun folgend in anderen Eingabefeldern Punkte verteilen. Sobald ein feld ausgefüllt ist oder sobald überhaupt was eingetragen wird, soll das andere Feld, mit den noch übrigen Punkten um die eingetragene Punktzahl erniedrigt werden. Also ohne Reload, ohne alles.
Bisher habe ich einen Lösung, die überprüft ob eine Zahl oder etwas anderes eingegeben wird. Diese kennt aber die anderen Felder nicht und ich weiss auch nicht wie man andere Felder updaten kann:
function numbersonly(myfield, e, dec)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) ||
(key==9) || (key==13) || (key==27) )
return true;
// numbers
else if ((("0123456789").indexOf(keychar) > -1))
return true;
// decimal point jump
else if (dec && (keychar == "."))
{
myfield.form.elements[dec].focus();
return false;
}
else
return false;
}
vielen Dank schon im Voraus,
Maic.
Der User hat ein bestimmtes kontigent an Punkten. Sagen wir einmal 100. Diese werden recht oben angezeigt.
Er soll nun folgend in anderen Eingabefeldern Punkte verteilen. Sobald ein feld ausgefüllt ist oder sobald überhaupt was eingetragen wird, soll das andere Feld, mit den noch übrigen Punkten um die eingetragene Punktzahl erniedrigt werden. Also ohne Reload, ohne alles.
Salut
Ich denke, die Zahl 100 soll sich nicht nur bei einer Eingabe verkleinern, sondern bei einem Löschen der Eingabe auch wieder vergrössern.
Folglich brauchst du eine Funktion, welche z.B. bei jedem Verlassen von einem Eingabefeld dessen eingegebenen Wert ausliest, ihn mit einer allfälligen vorherigen Eingabe vergleicht und die Differenz von den 100 zu resp. abzählt.
Mit dem Eventhandler "onblur" z.B. kannst du ja bei jedem Inputfeld die oben beschriebene Funktion aufrufen.
Gruss
Schorsch