Struppi: document.forms.elements.value

Beitrag lesen

Hallo zusammen,

ich möchte per javascript testen, ob eine eingegebene Bestellmenge einen vorher definierten Wert überschreitet.
Meine Abfrage sieht so aus:

if (document.forms['NAME'].elements['bestellmenge'].value > 50)
 {alert('Bestellmengen > 50 sind nicht zulässig !')}
else
 {alert('Bestellmenge ist OK !')};

Leider erhalte ich IMMER die Meldung, dass der Bestellwert OK sei... weiss einer von euch wo der Fehler liegt ??

Mal wieder so ein unvollständiger Code mit dem dir kaum jemand helfen kann :-(

Also falls du wirklich eine Formular hast mit den Namen 'NAME' und dem Textfeld 'bestellmenge' und du dort eine Zahl größer als 50 eingibst ist der Code da oben richitg und funktioniert in allen mit bekannten Browsern, die Javascript können. Folglich ist etwas an deinem HMTL Code nicht in Ordnung. Um das heraus zu finden solltest du (wie es eigentlich jeder Programmierer macht) versuchen die Werte die du erwartest verifizieren. Also in deinem JS Code folgendes einbauen:

// existiert das Dokument?
if(!document) alert('document ist noch nicht fertig geladen');

// existiert das Formular?
if (!document.forms['NAME']) alert('Das Formular mit dem Namen NAME existiert nicht');

// existiert das Feld?
if (!document.forms['NAME'].elements['bestellmenge']) alert('Das Feld existiert nicht');

Alles in allen ist dies aber ziemlich umständlich. Da du vermutlich den Wert beim abschicken prüfst kannst du die Referenz zum Formular direkt mitgeben:

<form .... onsubmit="return chkFrm(this);"..>

function chkFrm(form)
{
    // Hier hast du jetzt Zugriff auf das Formular
    // und musst entweder ein true/false zurückgeben
}

Struppi.