IT-Academy Logo
Sign Up Login Help
Home - Internet - Webdesign - Bei Klick: Radio-Buttons deaktivieren/einfrieren



Bei Klick: Radio-Buttons deaktivieren/einfrieren

Wenn man auf einen Radio-Button klickt, sollen automatisch alle Buttons deaktiviert werden damit nachträgliches Ändern nicht möglich ist. Dieses Dokument zeigt mit Code-Ausschnitten wie dies zu realisieren ist.


Autor: Martin Puaschitz (onestone)
Datum: 11-12-2003, 23:10:24
Referenzen: Keine
Schwierigkeit: Anfänger
Ansichten: 10722x
Rating: 8 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Das Problem

Wenn man z.B. einen Fragebogen im Web entwickelt ist es wichtig, dass getroffene Entscheidungen nicht mehr im Nachhinein rückgängig gemacht werden. Hat man, so wie ich, aus Bequemlichkeitsgründen alle Fragen auf einer Seite, muss ein Weg gefunden werden, damit der Befragte aufgrund von Doppelfragen (eine Frage am Ende bezieht sich auf eine am Anfang zwecks Vergleichbarkeit) nicht seine Meinung ändern kann.

Die Lösung

Mit Javaskript kann man bequem und einfach eine Funktion programmieren, womit genau dies bewerkstelligt werden kann. Diese Funktion definiert, dass im Formular "data" die Formularbuttons mit dem Namen "data1" disabled werden. Wichtig ist, dass Javaskript bei "0" anfängt zu zählen:

<scripttype="text/javascript">
<!--
function disable()
{
document.data.data1[0].disabled="yes"
document.data.data1[1].disabled="yes"
document.data.data1[2].disabled="yes"
document.data.data1[3].disabled="yes"
}
//-->
</script>

Nun müssen noch die Radiobuttons definiert werden und besonders wichtig ist dabei, dass egal welchen Button man klickt, die passende Funktion gestartet wird damit jeweils alle Buttons deaktiviert werden und somit keine Änderungen mehr möglich sind:

<input type="radio" name="data1" value= "1"onClick=disable()>
<input type="radio" name="data1" value= "2"onClick=disable()>
<input type="radio" name="data1" value= "3"onClick=disable()>
<input type="radio" name="data1" value= "4"onClick=disable()>


Automatisierung


Wer zugleich in PHP oder ähnlichem programmiert, kann recht einfach die Fragen aus einer Datenbank an das Formular übergeben und gleichzeitig die notwendigen Javaskripts sowie Radio-Buttons definieren. Dadurch, dass man somit quasi nur einmal obrigen Code verwendet, muss man lediglich data1 durch dataN (je nach Anzahl der vorhandenen Fragen) bei den Radio-Buttons ersetzen, sowie für eine Einheit Radio-Buttons eine passende JavaSkript-Funktion (Achtung, der Funktionsname muss sich auch erhöhen, z.B. disable1(), disable2(), usw. - eine Funktion pro Frage). Es ergibt sich also sinngemäß:

<scripttype="text/javascript">
<!--

function disable1()
{
document.data.data1[0].disabled="yes"
document.data.data1[1].disabled="yes"
document.data.data1[2].disabled="yes"
document.data.data1[3].disabled="yes"
}
//-->
</script>

<input type="radio" name="data1" value= "1"onClick=disable()>
<input type="radio" name="data1" value= "2"onClick=disable()>
<input type="radio" name="data1" value= "3"onClick=disable()>
<input type="radio" name="data1" value= "4"onClick=disable()>

<scripttype="text/javascript">
<!--< /CODE> < /SPAN>

function disable2()
{
document.data.data2[0].disabled="yes"
document.data.data2[1].disabled="yes"
document.data.data2[2].disabled="yes"
document.data.data2[3].disabled="yes"
}
//-->
</script>

<input type="radio" name="data2" value= "1"onClick=disable()>
<input type= "radio" name= "data" value= "2"onClick=disable()>
<input type="radio" name="data2" value= "3"onClick=disable()>
<input type="radio" name= "data2" value= "4"onClick= disable()>
...


Purzel
Rookie
Beitrag vom:
13-12-2006, 20:17:58

JavaScript?

Gibt es auch eine Möglichkeit in PHP?

Wäre nett, wenn es so eine gäbe, da ich Probleme mit JavaScript habe.

Gruß

Purzel

-----------------------------------------------------


dreamer
Expert
Beitrag vom:
26-12-2003, 12:51:38

Leute ohne Javascript können aber ruhig weiterklicken. Deshalb sollte man auch darauf hinweisen dass man nur einmal klicken sollte.

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0