PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Checkboxen durch Funktion auslesen



Kleiner
31.05.2005, 20:51
Hallo

Ich hab ein Problem. Ich hab ein Formular geschrieben, das aus 15 Checkboxen besteht. Alle sehen so aus:
<input type="checkbox" name="reisewahl1" value="0001">
<input type="checkbox" name="reisewahl2" value="0002">

Also es ändert sich immer dur der Name und das Value. Das geht bis:

<input type="checkbox" name="reisewahl15" value="0015">

Diese Boxen werden durch klicken eines Buttons ausgelesen und überprüft, ob sie angeklickt sind. Die aufgerufende Funktion soll durch eine FOR- Scheife alle 15 boxen auslesen und deren Value in einer anderen Variablen speichern, wenn sie angeklickt sind. Außerdem sollen max. 3 Boxen angeklickt werden. Also soll eine Abbruchbedingung geschrieben werden.
Das sieht dann so aus:

function auswertung()
{
***
***var a = 1
***
***for (i=1 ; i <=16 ; i++)
***{
******if (document.reiseauswahl.reisewahl[i].checked == true)
******{
*********parent.reiseNr[a] = document.reiseauswahl.reisewahl[i].value
*********a = a + 1
******}
******
******if (a <= 4)
******{
******break
******}
***}
***
}

Ich hab es auch mal ohne FOR- Schleife probiert und dann das [i] durch die jeweilige Zahl der Reisenummer ersetzt. Dann hat es auch funktioniert. Nur bei der FOR Scheife klappt es nicht. Aber ich soll in meiner Schule ähnliche Abläufe in Funktionen und Schleifen darstellen, sonst gibt es Punktabzug. Weis jemand rat???

Marcus
31.05.2005, 20:57
Ich kenne mich mit dieser Sprache nicht aus aber kann es an dieser Verkettung liegen:


reisewahl[i]


Muß eventuell anders Verkettet werden (+i, &i, usw)?

Grüße

Marcus

Kleiner
31.05.2005, 21:03
Ich habs probiert, aber es geht so leider nicht.

Aber ich bin eben noch selbst auf eine Idee gekommen. Eigentluch werden so ja Arrays abgefragt. Und meine Checkboxen sind ja keine Arrays. Muss ich mir was anderes einfallen lassen.

Mikes-PCHilfe
01.06.2005, 08:14
Versuchs so:

function auswertung()
{

var a = 1

for (i=1 ; i <=16 ; i++)
{
var feld = "reisewahl" + i
if (document.reiseauswahl[feld].checked == true)
{
parent.reiseNr[a] = document.reiseauswahl[feld].value
a = a + 1
}

if (a <= 4)
{
break
}
}

}

Kleiner
01.06.2005, 18:37
Geht leider auch nicht. :(

Also die If- abfrage läuft, aber die zuweisung mittels parent.reiseNr[a] geht nicht.

Mikes-PCHilfe
02.06.2005, 08:17
Also den Teil den ich geändert hab, der funktioniert? Prima :)

Was soll denn parent.reiseNr[a] machen? Eine Variable füllen? Wenn ja, wo ist diese?

Kleiner
06.06.2005, 18:13
Sorry, das ich mich so lange nicht gemeldet habe, aber bei mir war Klausurenwelle. Da hab ich 3-4 Klausuren pro Woche geschrieben.

So, nun zu der parent.reiseNr[a]

Das ist meine Variable, die in meinem Frame gespeichert ist. Somit ist die immer verfügbar. Und das [a] steht dir die nummer. Also parent.reiseNr1, parent.reiseNr2 .....
Wie auch immer, ich hab es jetzt so gelößt, das ich jede Box alleine abfrage. Ist zwar nen langes script geworden, aber es geht.

Jetzt hab ich aber nen neues Problem.
(Keine Sorge, ich bin bald fertig mit meinen Fragen. Mein Projekt muss am Freitag abgegeben werden. :D ;D)

Also, ich soll ein Eingabefeld erstellen. Und dieses Feld soll abgefragt werden, ob es im GMT- Format geschrieben ist und ob es auch nach dem aktuellen Datum liegt.
Ich bin schon ne ganze weile am Überlegen, aber ich hab keine Idee.
Kann mir jemand helfen??

Mikes-PCHilfe
06.06.2005, 19:58
Hallo,

wenn das ein Projekt ist, was du abgeben musst, wird das mit dem einzeln Abfragen sicherlich nicht so gut ankommen.

zu 2) Hiermit geht das Perfekt: http://de.selfhtml.org/javascript/objekte/regexp.htm

GRuß Mike

Kleiner
09.06.2005, 14:30
Sorry, aber irgendwie bekomme ich das nicht hin. Kannst du mir helfen mike???
Wäre echt super. :)

Mikes-PCHilfe
09.06.2005, 16:26
mit regexp ?

Wie genau soll das Datum aussehen? DD-MM-YYYY ??

Gruß Mike

Kleiner
09.06.2005, 18:16
Ja ganz genau.

Mikes-PCHilfe
09.06.2005, 19:34
Ok, kann mir das leider erst am WE ansehen.

GRuß Mike

Kleiner
09.06.2005, 19:38
Danke für deine Mühe mike, aber mir ist vorhin auch eine idee gekommen. Ist vielleicht nicht die beste, aber sie funktioniert auf jeden Fall einwandfrei.
Achso, bitte nicht über meine netten Texte in den Alert- Feldern wundern. Sind nur Notizen für mich gewesen um Fehler zu finden.

Hier das Script:
var zeit = new Date;

if (document.anmeldg.zeit13.value >= zeit.getYear() && document.anmeldg.zeit12.value < 13 && document.anmeldg.zeit11.value < 32)
{
if (document.anmeldg.zeit12.value >= (zeit.getMonth()+1))
{
if (document.anmeldg.zeit11.value >= zeit.getDate())
{
alert("Toll, es klappt.")
}
else
alert("Tag falsch")
}
else
alert("Monat falsch")
}
else
{
alert("Alles falsch")
}

Mikes-PCHilfe
10.06.2005, 08:36
Zwar etwas umständlich, aber so gehts auch :)

GRüße Mike