Formularfeldmanipulation
Elya
- javascript
Hallo Forum,
wir haben eine formularlastige Anwendung, die weitestgehend javascriptfrei, sprich serverseitig (php) läuft. Ein paar Mini-
Komfort-Funktionen sollen jedoch mit JS ergänzt werden.
Bsp.: Wenn in einem Buchungsformular ein bestimmter Radiobutton auf "ja" gesetzt wird, wird das darunterliegende Textfeld als "Pflichtfeld" markiert, erhält eine andere css-Klasse.
function machePflichtfeld(foo){
document.getElementById(foo).className = "obligtext";
}
Die Funktion wird auf onClick auf dem input type="radio" aufgerufen.
Soweit klappt das auch. Wenn jedoch beim Absenden des Formulars ein Fehler auftritt (Pflichtfeldprüfung läuft serverseitig), wird die Seite ja neu aufgerufen - und das eben auf "obligtext" geänderte Textfeld hat wieder die ursprüngliche Klasse - unschön und verwirrend, zumal wenn es genau das Feld ist, was womöglich nicht ausgefüllt wurde.
Ich habe nun versucht, mit dieser Funktion:
function checkRadio(foo,bar){
if (document.buchung.foo[0].checked == true)
{
document.getElementById(bar).className = "obligtext";
}
}
den potentiell gecheckten Radiobutton abzufragen und demnach wieder die Klasse zu ändern.
Irgendwie klappt das jedoch nicht. onLoad kann/ ich das ganze nicht aufrufen, weil ich mit templates arbeite und der <body> Tag für alle Seiten ein und derselbe ist. <form onLoad> gibt's nicht.
In den html-Code via <script> an verschiedenen Stellen (vor/hinter den relevanten Elementen) reingeschrieben, erkennt der Browser mein Element (noch) nicht ("no properties").
Was für ein Aufwand für so'n Sche.... ! Ich werde bei der ganzen Sache den Verdacht nicht los, daß es doch ganz einfach sein muß und ich nur einen dummen Fehler drin habe.
Helft mir bitte mal auf die Sprünge! Danke.
Gruss aus Koeln-Ehrenfeld,
Elya
hi
Was für ein Aufwand für so'n Sche.... ! Ich werde bei der ganzen Sache den Verdacht nicht los, daß es doch ganz einfach sein muß und ich nur einen dummen Fehler drin habe.
wenn du eh schon so weit es geht mit php arbeitest, warum hälst du dann die zustände der einzlenen formularfelder nicht auch gleich fest?
so kannst du wenn du auf die seite zurückspringst ob es für die formularfelder bereits einen status gibt und dieses dann entsprechend formatieren.
so long
ole
(8-)>
hi,
Ich habe nun versucht, mit dieser Funktion:
function checkRadio(foo,bar){
if (document.buchung.foo[0].checked == true)
{
document.getElementById(bar).className = "obligtext";
}
}
den potentiell gecheckten Radiobutton abzufragen und demnach wieder die Klasse zu ändern.
warum prüfst du nicht gleich serverseitig bei der erneuten ausgabe des formulars, ob der button für "obligatorisches feld" angekreuzt war, und gibst dann das geänderte class-attribut für das feld auch schon serverseitig aus?
gruss,
wahsaga
Hallo,
warum prüfst du nicht gleich serverseitig bei der erneuten ausgabe des formulars, ob der button für "obligatorisches feld" angekreuzt war, und gibst dann das geänderte class-attribut für das feld auch schon serverseitig aus?
Danke euch beiden - in dem Moment wo ich auf Absenden gedrückt hatte, kam ich auch auf die Idee... ist viel einfacher. Javascript hält mich immer vom normalen Denken ab ;-)
Gruss aus Koeln-Ehrenfeld,
Elya