Formularabfrage läuft nicht korrekt

Eliquas

Grünschnabel
Hallo Javascipt-Experten,

Habe ein kleines Shop-System erstellt und darin eine Abfrageroutine.

Im Kopf gibt es die Auswahl "Lieferung" für Inland- und Auslandversand.

Bei Auslandversand erscheint im Feld "Zahlung" das Wort "Kreditkarte". Hier wird auch korrekt abgefragt nach Kartenart und -nummer. Jedoch die persönlichen Daten in der Anschrift werden nicht abgefragt.

Das funktioniert aber bei Inlandversand. Hier werden jedoch die Kreditkartendaten bei Auswahl "Kreditkarte" nicht abgefragt.

Wahrscheinlich nur ein ganz dummer Fehler von mir, aber ich finde ihn nicht. Kann jemand von Euch helfen?

Die Seite findet Ihr unter: http://www.elis-webdesign.de/ilt/ilt_euro/shop/shopseit/kasse_inl.html
Vielen Dank im voraus

Eliquas
 
Hi,

Du fragst in Deiner Funktion die Value des Auswahlfeldes ab, und dort ist jeweils etwas wie
Code:
index.php3?opencat=Kreditkarte
abgelegt, und nicht der angezeigte Text... verwendest Du eine Abfrage wie
Code:
if (document.Formular.stage2.value.indexOf("Kreditkarte") >= 0)
, sollte es funktionieren.

Gruß

P.S.: mein Browser gibt teilweise noch diverse andere Fehler aus, die ich mir allerdings noch nicht angesehen habe. Das könnte aber der Grund sein, warum auch die Abfrage der anderen Daten manchmal nicht funktioniert.
.
 
Zuletzt bearbeitet:
Code:
document.Formular.stage2.value == "Kreditkarte"
...da liegt der Fehler.

Zum einen musst du auf die ausgewählte Option anders zugreifen:
Code:
document.Formular.stage2.options[document.Formular.stage2.selectedIndex]

Zum anderen vergleichst du den "value"...der ist bei Kreditkarte aber index.php3?opencat=Kreditkarte.... du musst die Eigenschaft "text" vergleichen.
 
Danke Datic, danke fatalus für eure Hilfe.

Jetzt noch mal für mich "Doofie".

Welche der beiden angegebenen Lösungen ist denn jetzt die Richtige?

Die von Datic oder die von fatalus, oder beide?

Danke für Eure Hilfe

Eliquas
 
Ich habe den code nun so verändert:

if (document.Formular.stage2.options[document.Formular.stage2.selectedIndex])
{
if (document.Formular.Kreditkarte.value == "" || document.Formular.Kreditkarte.value == "-")
{
alert("Bitte Kreditkartenart auswählen!");
return false;
}
else if (document.Formular.KarteNr.value == "" || is_NaN(document.Formular.KarteNr.value))
{
alert("Bitte gültige Kartennummer eingeben!");
return false;
}
}

Aber jetzt wird jedesmal die Kreditkarte abgefragt, auch bei Inlandversand mit alternativen Zahlungsmethoden.

Wo liegt der Fehler?

Eliquas
 
Vergeßt den letzten Eintrag. Ich habe es nun hinbekommen, dass die Kreditkartenabfrage korrekt läuft, bei Ausland- und bei Inlandversand. Nur die daran anschließende bfrage nach den persönlichen Daten(Adresse) usw. will einfach nicht laufen.

Habe ich Kreditkartenart und Nummer eingetragen und klicke auf Abschicken, wird das Formular sofort versendet. Ohne weitere abfragen.

Und warum läuft die Kreditkartenabfrage nicht im Internet Explorer(Version. 6.0)? Hier läuft nur die Adressabfrage.

Eliquas

PS.: gibt es eigentlich eine Möglichkeit, das Gültigkeitsdatum auch zu prüfen?
 
Hi,

zur Abfrage der Kartennummer schreibst Du:
HTML:
is_NaN(document.Formular.KarteNr.value)
- diese Funktion scheint aber nicht zu existieren, daher wird die gesamte Funktion unterbrochen und das Formular verschickt. Ich nehme an, Du meinst die native Funktion isNaN, damit sollte es klappen.

Gruß

.
 
Hey Datic,

so ein Sch***** blöder Fehler! Jetzt klappt es im Mozilla. Wenn Du jetzt noch weißt, wie man die Kreditkartenabfrage auch noch so ändert, dass der saudumme Internet Explorer es auf frißt., dann wäre ich fast glücklich.

Dann fehlt nur noch eine Abfrage für das Gültigkeitsdatum. Vielleicht weißt Du hier ja auch Rat.

Eliquas
 
Hi,

frag mich nicht warum, aber ich habe die Seite bisher ausschließlich im IE (6, SP1) getestet, und es hat tadellos funktioniert. Bekommst Du JS-Fehlermeldungen?

Das Datum kannst Du sicher genauso abfragen, wie die anderen Felder: Teile den String an dem Trennzeichen (Punkt, Komma o.ä.) und überprüfe die resultierenden Zahlen.

Gruß
.
 

Neue Beiträge

Zurück