Hi,
Der Aufruf erfolgt dynamisch
my $vcount = ssp::get_var_varticle("LBSAUTO", $i);
$input= qq|<input onkeyup="checkCount(this,$vcount);" name="a__$id" value=0 SIZE=1 style="width:20px;"> |;
serverseitiger Code macht das Verstehen und Nachvollziehen clientseitiger Probleme nie einfacher, aber oft komplizierter, manchmal gar unmöglich. Bitte poste nächstes Mal das, was tatsächlich beim Client ankommt.
wenn ich die Funktion mit onchange aufrufe, kommt die Meldung erst, wenn der Kunde irgendwo anders hinklickt
Nein, sondern dann, wenn das input-Element den Focus verliert (das ist unter anderem auch der Fall, wenn man irgendwo außerhalb des Feldes klickt). Also auch dann, wenn man mit [Tab] zum nächsten Feld springt oder mit [Enter] das Formular absenden möchte.
- das ist hier eigentlich nicht erwünscht...
Problem hier: Woher soll ein Computer wissen ... nein, anders: Woran soll ein Computer *erkennen*, dass ich nach der Ziffer 1 noch eine 5 eingeben möchte? Das ist so nicht möglich. Und auch wenn du die Meldung zeitverzögert anzeigst - es wird immer einen geben, der so schläfrig tippt, dass für ihn die Meldung zu schnell kommt.
Besser wäre also, die Information "nur ** Stück lieferbar" als normalen Text in der Nähe des Eingabefelds anzuzeigen und bei jeder Eingabe (hier wäre onkeyup denkbar) anhand des eingegebenen Werts ggf. unsichtbar zu machen.
Apropos "5": Ist Dir eigentlich bewusst, dass "2" größer also "100" ist?
in diesem Fall nicht - habe es gerade nochmal getestet, wenn ich Lagerstand 100 eingebe, kann ich 5, 9 oder 99 eintippen OHNE daß die Meldung eingeblendet wird. (auf der Demoseite erste Zeile rechts - flieder)
Dann hast du anscheinend daran gedacht, den Wert aus dem Eingabefeld von String nach Number zu wandeln.
So long,
Martin
Lieber eine Fliege im Porzellanladen
als ein Elefant in der Suppe.