PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : warum ist kleiner nicht gleich kleiner?


gerhard
11.09.2004, 16:23:57
ich für über js eine eingabeprüfung durch:

ein gasthaus kann sitzplätze eintragen und wieviele davon im freien sind.

html:

Gesamtplätze: <input name="plaetze" type="text" value="'.$bt_row[plaetze].'" size="5" maxlength="5" onChange="checkPlaetze(this.value,document.bt_datenblatt.imfreien.value)">

und

davon im Freien:
<input name="imfreien" type="text" value="'.$bt_row[imfreien].'" size="5" maxlength="5" onChange="checkPlaetze(document.bt_datenblatt.plaetze.value,this.value)">


wobei die beiden "value"-werte $bt_row[plaetze] und $bt_row[imfreien] aus eine mysql-datenbank kommen.

das js zur Überprüfung mit rückmeldung:

function checkPlaetze(pl,fr)
{

if (pl < fr)
{
alert('Bitte bei den Plätzen die Gesamt-Zahl - also im Haus und im Freien - angeben! (Die Angabe " - davon '+fr+' im Freien" ist höher als '+pl+' (Gesamtplätze-Zahl)!');

document.bt_datenblatt.plaetze.focus();
return false;
} // if plaetze<imfreien
} // function plaetze

wenn nun im feld "imfreien" ein wert höher null eingetragen ist kriege ich bei einer änderung des feldes "plaetze" AUCH DANN DIE MELDUNG, DASS "im Freien" ANGEBLICH HÖHER SEI ALS "plaetze", WENN DER WERT ÜBER "imfreien" LIEGT!!!!

wenn also im js "fr" kleiner ist als "pl" kommt trotzdem die meldung (ausser, wenn fr - also die plätze "imFreien" 0 sind)

W A R U M ????

Marilu
12.09.2004, 08:48:09
Werden in der Funktion checkPlaetze() die Werte pl und fr richtig übergeben? Gib sie doch vor der if-Abfrage mal aus.

gerhard
12.09.2004, 13:45:24
hab ich ja!

lauss mal das script laufen -- ein witziger effekt, wenn da z.b. steht:

'Bitte bei den Plätzen die Gesamt-Zahl - also im Haus und im Freien - angeben! (Die Angabe " - davon '8 im Freien" ist höher als 24 (Gesamtplätze-Zahl)!"

ich glaub ich spinn!

Marilu
12.09.2004, 15:10:05
Kann es sein, dass die Werte in der JS-Funktion als String behandelt werden? Führe doch mal in der Funktion mit den übergebenen Werten einige arithmetische Operationen durch ...

gerhard
13.09.2004, 05:17:28
bingo!

du hast recht: offenbar erkennt js nicht, dass es sich hier um zahlen handelt.
ich habe jetzt die beiden zahlen vor dem vergleich durch 1 dividiert ( also "pl = pl/1" und "fr=fr/1") und es klappt!

danke!