[GastForen Programmierung/Entwicklung JavaScript checkboxen problem

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

checkboxen problem

pr0stAta
Beiträge gesamt: 2

2. Aug 2004, 11:43
Beitrag # 1 von 4
Bewertung:
(950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
so habe folgendes problem:
habe 3 checkboxen von denen man nur 1 anklicken darf aber auch muss.
normalerweise würde man hierfür natürlich radiobuttons nehmen
allerdings passen die nicht in mein design.
Code
  checkboxen2 = new Array("angabe"); 
meldungstext2 = new Array();
meldungstext2[0] = new Array(2);
meldungstext2[0][0] = "Bitte wählen Sie nur eine Bezahlungsart";
meldungstext2[0][1] = "Bitte wählen Sie eine Bezahlungsart";
AnzCheckboxen2 = new Array(3);
for (k=0;k<checkboxen2.length; k++)
{
var boolCheck2 = false;
Fehlermeldung2=false;
for (l=0; l<AnzCheckboxen2[k]; l++)
{
blubb2 = checkboxen2[k]+l;
if(document.getElementById(blubb2).checked == true)
{
if(boolCheck2 == false)
{
boolCheck2 = true;
}
else
{
if(count<1)
{
Fehlermeldung2 = meldungstext2[k][0];
var boolbla2=false;
count++;
}
}
}
}
if(boolCheck2 == false)
{
if(count<1)
{
Fehlermeldung2 = meldungstext2[k][1];
var boolbla2=false;
count++;
}
}
if (Fehlermeldung2)
{
alert(Fehlermeldung2);
}
}
if(boolbla2==false)
{
return false;
}

dieser code soll regeln das man fehlermeldungen kriegt sobald
man mehr als 1 und 0 aktiviert hat. ausgelöst natürlich durch den submit button. habe nur einen teilausschnitt reinkopiert da ich denke das hier etwas nicht stimmt. er gibt nämlich immer, egal wieviele man anklickt, nur die eine meldung "bitte wählen sie eine bezahlungsart"
aus.
hoffe jmd kann mir helfen :>
mfg prosta
X

checkboxen problem

SabineP
Beiträge gesamt: 7586

2. Aug 2004, 11:58
Beitrag # 2 von 4
Beitrag ID: #100665
Bewertung:
(950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Prosta,

>> normalerweise würde man hierfür natürlich radiobuttons nehmen
>> allerdings passen die nicht in mein design.

Radiobuttons und Checkboxen sind keine Designelemente, sondern Formularelemente.
Jedes Betriebsystem und jeder Browser liefert seine eigenen Formularelemente.
Du hast auf das Aussehen dieser Elemente nur wenig Einfluß.

>> hoffe jmd kann mir helfen :>

Ja, verwende Radiobuttons und prüfe, ob einer davon ausgewählt wurde.
Code
<html> 
<head>
<title>Formular</title>
<script type="text/javascript">
<!--
function pruef()
{
s=false;
for (i=0;i<document.formular.branche.length;i++){
if(document.formular.branche[i].checked == true){
s=true;
}
}
if(s==false){
alert ("Bitte A, B oder C auswählen!");
return false;
}
}
//-->
</script>
</head>
<body>
<form name="formular" action="http://example.com/mail.pl" method="post" onSubmit="return pruef()">

A<input type="radio" name="branche" value="A">
B<input type="radio" name="branche" value="B">
C<input type="radio" name="branche" value="C">

<input type="submit" value="Absenden">
</form>
</body>
</html>


Gruß Sabine

[Netscape 4 ist mein Freund]


als Antwort auf: [#100660]

checkboxen problem

pr0stAta
Beiträge gesamt: 2

2. Aug 2004, 12:07
Beitrag # 3 von 4
Beitrag ID: #100669
Bewertung:
(950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
naja genau das wurde mir öfter schon gesagt doch
es hilft mir nicht weil ich checkboxen verwenden muss.
und ich weiss zu 100% das es damit auch geht. habe es selbst schon
in anderen programmcode teilen verwendet. doch nur hier in diesem
macht er probleme
trotzdem danke sabine :>


als Antwort auf: [#100660]
(Dieser Beitrag wurde von pr0stAta am 2. Aug 2004, 12:07 geändert)

checkboxen problem

Markus Walker
Beiträge gesamt: 494

4. Aug 2004, 07:33
Beitrag # 4 von 4
Beitrag ID: #100959
Bewertung:
(950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
>naja genau das wurde mir öfter schon gesagt
Dann solltest Du mal darüber nachdenken ;-)

>es hilft mir nicht weil ich checkboxen verwenden muss
Warum denn?

Grundsätzlich kann man der Aussage von Sabine nur zustimmen. Neben technischen Argumenten ist da noch, dass nach allgemein etablierten Konventionen eine «1 aus n Auswahl» vom Userinterface in runden Formen (Radio-Buttons) und eine «n aus n Auswahl» mit eckigen Formen (Check-Boxes) dargestellt wird.

Dein Code erschein mir sehr schwerfällig. So wie er hier steht, hat er kaum einmal funktioniert. Folgendes ist mir dabei aufgefallen:

for (l=0; l<AnzCheckboxen2[k]; l++)
//AnzCheckboxen2 ist als Array mit drei Elementen definiert, die Elemente sind aber leer.

blubb2 = checkboxen2[k]+l;
//checkboxen2 ist als Array mit einem Element definiert

if(boolCheck2 == false)
{
boolCheck2 = true;
//Dies sorgt dafür, dass boolCheck2 ab hier immer true ist. Da weiter ober boolCheck2 auf false gesetzt ist wird dies immer so sein.

if(count<1)
//count ist nicht definiert

Fehlermeldung2
//Diese Variable wird mal als Flag und mal als String benutzt, was sicher zur Verwirrung führt.

if(boolbla2==false)
//boolbla2 ist nur definiert, falls die entsprechenden if-Verzweigungen durchlaufen wurden.


Falls wirklich Checkboxen benutzt werden müssen (bitte obige Frage beantworten!), dann ist es wohl am einfachsten, wenn diese soweit vergewaltigt werden, dass sie das selbe Verhalten wie Radios zeigen. Dabei kann z.B. über den onclick Event sichergestellt werden, dass nur die jeweils geklickte Checkbox angekreuzt ist und alle anderen werden unchecked. Mit dem onsubmit Event kann abschliessend überprüft werden, ob wirklich eine Wahl getroffen wurde.

HTH


als Antwort auf: [#100660]
X