[JS] Probleem met open nieuwe pagina

Pagina: 1
Acties:

  • _Administr8or_
  • Registratie: Februari 2002
  • Laatst online: 11-09 16:10
Ik ben net begonnen met het maken van websites en ik heb nog niet veel gewerkt met JS dus dit zal waarschijnlijk een simpel probleem zijn, alleen weet ik niet wat het probleem is en met de search kom ik ook geen oplossingen vinden

Ik heb op mijn pagina een checkbox met 4 opties.
Als je op het plaatje klikt (logo.gif) moet hij een nieuwe pagina openen(in hetzelfde scherm),
maar welke pagina hij opent is afhankelijk van de checkbox...

Met deze code doet hij dus helemaal niks, ik weet (denk) dat de fout hier zit :
if (checkbox_form.checkbox[0].checked) {window.location.replace('blabla.htm'); }
maar ik weet niet precies wat er fout is.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<html>
<title>TEST</title>
<body bgcolor="#33669c">
<FONT COLOR="#FFFFD6">

<script Language="JavaScript">
<!--
function welkepagina()
{

if (checkbox_form.checkbox[0].checked) {window.location.replace('blabla.htm'); }
if (checkbox_form.checkbox[1].checked) {}
if (checkbox_form.checkbox[2].checked) {}
if (checkbox_form.checkbox[3].checked) {}

}

function checkbox_checker()
{

// set var checkbox_choices to zero

var checkbox_choices = 0;

// Loop from zero to the one minus the number of checkbox button selections
for (counter = 0; counter < checkbox_form.checkbox.length; counter++)
{

// If a checkbox has been selected it will return true
// (If not it will return false)
if (checkbox_form.checkbox[counter].checked)
{ checkbox_choices = checkbox_choices + 1; }

}


if (checkbox_choices > 1)
{
// If there were more than three selections made display an alert box 
msg="You're limited to only 1 selection.\n"
msg=msg + "You have made " + checkbox_choices + " selections.\n"
msg=msg + "Please remove " + (checkbox_choices-1) + " selection(s)."
alert(msg)
return (false);
}


if (checkbox_choices < 1 )
{
// If there were less then selections made display an alert box 
alert("Please make a selection. \n" + checkbox_choices + " entered so far.")
return (false);
}

welkepagina();
return(true);


}

-->
</script>


<form method="get" action="#" 
onsubmit="return checkbox_checker()" name="checkbox_form">
<input type="checkbox" value="1" name="checkbox">1<br>
<input type="checkbox" value="2" name="checkbox">2<br>
<input type="checkbox" value="3" name="checkbox">3<br>
<input type="checkbox" value="4" name="checkbox">4<br>
<input type=image src="logo.gif">
</form>
</FONT> 
</body>
</html>

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Volgens mij haal jij checkbox en radiobuttons door elkaar. Ik weet ook niet of de checked waarden van een checkbox ook in een array gezet worden bij gelijke names.
Haal ook die '_' uit je formname; dat kan ook problemen geven.
Probeer eens het volgende:
code:
1
if (document.forms['checkboxform'].checkbox[0].checked == true) { window.location.replace('blabla.htm'); }

Werkt dat niet, dan denk ik dat je je checkboxen verschillende namen moet geven...

Intentionally left blank


Verwijderd

Ik ben ook niet zo'n JS-held, maar na ff testen bleek het wel te werken als je dit aanpast:
code:
1
2
welkepagina();
return (false);

Vraag me alleen niet waarom...:)

En daarbij snap ik de functie van het script niet helemaal, je kan idd beter met radiobuttons werken.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
2
3
function GoGetIt(sLocatie) {
  window.location.href = sLocatie;
}


code:
1
2
3
4
5
6
7
<form name="locatieForm">
à port lycos ..
<input type="radio" name="Locatie" value="www.lycos.nl" onClick="GoGetIt(this.value);"> .nl<br>
<input type="radio" name="Locatie" value="www.lycos.be" onClick="GoGetIt(this.value);"> .be<br
<input type="radio" name="Locatie" value="www.lycos.de" onClick="GoGetIt(this.value);"> .de<br>
<input type="radio" name="Locatie" value="www.lycos.com" onClick="GoGetIt(this.value);"> .com
</form>

Lijkt me al een stukje eenvoudiger..

//edit: nog eenvoudiger:
code:
1
<input type="radio" name="Locatie" value="www.lycos.com" onClick="window.location.href = this.value;"> .com

  • _Administr8or_
  • Registratie: Februari 2002
  • Laatst online: 11-09 16:10
heel erg bedankt, hij doet het inmiddels!! :) :)
ik heb de oplossing van Milkman_Dan gebruikt.
Morgen ga ik even kijken of ik niet beter radiobuttons kan gebruiken, ik ben nu namelijk afgewerkt!! :)