Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Problem mit JavaScript "formular"

_SuperMario - 34
Anfänger (offline)

Dabei seit 12.2008
21 Beiträge
Geschrieben am: 21.06.2009 um 19:57 Uhr

Hallo liebe Tu-ler...
Ich habe ein kleines Problem, ein schönheitsfehler bei meiner Homepage...
hier habt ihr den abschnitt der das Problem zeigt.
Also das ist ein einfaches formular in Javascript geschrieben.
Die Checkbox ,,Alles makieren" makiert alles und wenn alles makiert ist und man eins der makierten optionen abwählt verschwindet auch das häckchen bei ,,Alles makieren" so sollte es ja auch sein.

Doch mein Problem ist der, dass wenn ich alle Optionen mit der Hand wähle und somit alles makiert ist, wird das ,,Alle Makieren" Checkbox nicht aktiv was es aber sollte...
ich komme nicht weiter und hoffe ihr könnt mir helfen...
hier ist der Quelltext.
Danke schon einmal im Voraus






<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fatihs Homepage</title>
<script language="JavaScript" type="text/JavaScript">
var marker=false;

function checkTheBoxes()
{
var elements = document.getElementsByName("box");
var check = false;
for(i=0;i<elements.length;i++){
if(elements[i].checked == false && i < elements.length - 1){
check = true;
}

}
if(check){
elements[elements.length - 1].checked = false;
}

}

function mark()

{

var elements=document.getElementsByName("box");



if(marker==false)

{

for(i=0;i<elements.length;i++)

{

elements[i].checked=true;

marker=true;

}

}

else

{

for(i=0;i<elements.length;i++)

{

elements[i].checked=false;

marker=false;

}

}

}
</script>

</head>
<body>

<form name="form1" id="form1" method="post" action="">
<p>Sie sind Fan der
Mannschaft?...<br />
<br />

<input type="checkbox" name="box" value="1"

onclick="checkTheBoxes()"/>Schalke 04<br />

<input type="checkbox" name="box" value="2"

onclick="checkTheBoxes()"/>Hamburger SV<br />

<input type="checkbox" name="box" value="3"

onclick="checkTheBoxes()"/>Hertha BSC Berlin<br />

<input type="checkbox" name="box" value="4"

onclick="checkTheBoxes()"/>1.FC K&ouml;ln<br />

<input type="checkbox" name="box" value="5"

onclick="checkTheBoxes()"/>VFB Stuttgart<br />

<input type="checkbox" name="box" value="6"

onclick="checkTheBoxes()"/>FC Bayern M&uuml;nchen<br />

<input type="checkbox" name="box" value="7"

onclick="checkTheBoxes()"/>N&uuml;rnberg<br />

<input type="checkbox" name="box" value="8"

onclick="checkTheBoxes()"/>1899 Hoffenheim<br />

<input type="checkbox" name="box" value="9"

onclick="checkTheBoxes()"/>Bayer Leverkusen<br />

<input type="checkbox" name="box" value="10" onClick="mark()" />Alle

makieren<br /></p>

</form>


</body>
</html>
sabbse
Team-Ulmler (offline)


Dabei seit 01.2006
5471 Beiträge

Geschrieben am: 21.06.2009 um 20:03 Uhr

das gabs doch gestern ioder so schon? o.O musst halt ne abfrage einbauen um den status zu checken -.-

Ich darf jetzt close schreiben, ohne ne Kopfnuss zu bekommen! :)

McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 21.06.2009 um 21:01 Uhr
Zuletzt editiert am: 21.06.2009 um 21:02 Uhr

Also ich seh nur ein Formular das in HTML geschrieben wurde ;-)

Ein paar Tips
if (irgendwas == false) ist nicht schön. Schreib lieber if (irgendwas) oder if (!irgendwas)
Du sagst auch "wenn nicht a dann b" und nicht "wenn es nicht wahr ist dass a dann b".

Warum nennst du das "check" wenns eigentlich besser "nichtCheck" heißen sollte?

Und dass es nicht angekreuzt wird ist doch klar, du setzt den checked nur auf false aber nirgends auf true. Nimm das if(check) raus und setze dann nur noch
elements[elements.length - 1].checked = !check;
dann gehts.

Übrigens, ich würd der Box "alle checken" eine ID geben und sie mit der ansprechen. Sobald nur mal mehr drin hast als das jetzt, hast du ein Problem wenn du immer die letzte nimmst.


*** diese Fusszeile verschwendet 45 Bytes ***

_SuperMario - 34
Anfänger (offline)

Dabei seit 12.2008
21 Beiträge
Geschrieben am: 21.06.2009 um 21:11 Uhr

Zitat von McPommes:

Also ich seh nur ein Formular das in HTML geschrieben wurde ;-)

Ein paar Tips
if (irgendwas == false) ist nicht schön. Schreib lieber if (irgendwas) oder if (!irgendwas)
Du sagst auch "wenn nicht a dann b" und nicht "wenn es nicht wahr ist dass a dann b".

Warum nennst du das "check" wenns eigentlich besser "nichtCheck" heißen sollte?

Und dass es nicht angekreuzt wird ist doch klar, du setzt den checked nur auf false aber nirgends auf true. Nimm das if(check) raus und setze dann nur noch
elements[elements.length - 1].checked = !check;
dann gehts.

Übrigens, ich würd der Box "alle checken" eine ID geben und sie mit der ansprechen. Sobald nur mal mehr drin hast als das jetzt, hast du ein Problem wenn du immer die letzte nimmst.

danke für die hilfreichen TIPPS!!;-)
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -