[javascript] nieuw array koppelen aan select invoer

Pagina: 1
Acties:

  • livingtale
  • Registratie: September 2002
  • Laatst online: 11-09-2021
Ik wil een online offerte formulier maken.
Daarvoor is het nodig dat een bezoeker na opgaaf van een plaatsnaam het aantal kilometers leest (x eurocent) en nog een aantal gegevens betreffende die plaats.
Het is me gelukt om een script te maken met behulp van radio buttons.
Maar dat moet natuurlijk met select velden.
En wat ik ook probeer dat lukt me niet.
Hier de uitgeklede pagina
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<script>
<!--
var newWindow
function makeNewWindow(form) {
var bestaand = document.forms[0]
    for (var i = 0; i < bestaand.keus.length; i++) {
        if (bestaand.keus[i].checked) {
            break
        }
    }
var nieuw = new Array(3)
nieuw [0] = 0
nieuw [1] = 200
nieuw [2] = 100
nieuw[i] == bestaand[i]
var plaatskeus = form.plaats.value
newWindow = window.open("","offerte","status,height=300,width=300")
newWindow.focus()
var newContent = "<HTML><HEAD><title>offerte</title></HEAD>"
newContent += "<body><h1>Offerte</h1> uw keus is gevallen op:<br>"
newContent += (bestaand.keus[i].value)
newContent += "<br>plaatskeuze: "
newContent += (plaatskeus)
newContent += "<br> dat betekent<br>"
newContent += (nieuw[i])
newContent += " kilometer</body></html>"
newWindow.document.write(newContent)
newWindow.document.close()
}
//-->
</script>

<TITLE>aanvraag offerte</TITLE>     
<link href="stylelivtale.css" rel="stylesheet" type="text/css">
<h3>aanvraag offerte</h3>
<FORM >
wilt u:<br>
<INPUT TYPE="radio" checked NAME="keus" value="keus a">keus a<br>
<INPUT TYPE="radio" NAME="keus" value="keus b">keus b<br>
<INPUT TYPE="radio" NAME="keus" value="keus c">keus c<br>
<br>
welke plaats<br>
<select name="plaats">
    <option value="Groningen" SELECTED>Groningen</option>
    <option value="Amsterdam">Amsterdam</option>
    <option value="Zwolle">Zwolle</option>
</select>
<br><br>
<INPUT TYPE="button" onclick="makeNewWindow(this.form)" VALUE="uw keuze">
</FORM>
</BODY>
</HTML>

Simpel vervangen van “keus” door plaats “plaats” en “plaatskeus”werkt niet.
En wat ik ook verder probeer, het lukt niet.
Rein

rein van der meij


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
* faabman snapt de vraag niet helemaal

Je kunt aan een select een onchange event koppelen, wanneer de selectie dan wijzigt kun je met select.value de nieuwe waarde uitlezen. is dat wat je bedoelt??

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

De waarde van die select vraag je (in dit geval) op met:
form.elements['plaats'].options[form.elements['plaats'].selectedIndex].value

  • livingtale
  • Registratie: September 2002
  • Laatst online: 11-09-2021
Volgens mij is dat dus niet wat ik bedoel.
Ik wil niet alleen de value van select kunnen uitlezen, maar deze ook koppelen aan een andere variabele, zodat niet alleen bijv. "Amsterdam" wordt uitgelezen, maar ook "200" en "binnenstad probleem", wanneer iemand voor "Amsterdam" kiest.

Misschien helpt het om te laten zien wat ik wil, maar wat dus niet werkt (de vorige code omgezet naar de select invoer ipv radiobutton invoer)
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
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<script>
<!--
var newWindow
function makeNewWindow(form) {
var bestaand = document.forms[0]
    for (var i = 0; i < bestaand.plaats.length; i++) {
        if (bestaand.plaats[i].checked) {
            break
        }
    }
var nieuw = new Array(3)
nieuw [0] = 0
nieuw [1] = 200
nieuw [2] = 100
nieuw[i] == bestaand[i]
newWindow = window.open("","offerte","status,height=300,width=300")
newWindow.focus()
var newContent = "<HTML><HEAD><title>offerte</title></HEAD>"
newContent += "<body><h1>Offerte</h1> Plaats van uw keuze:<br>"
newContent += (bestaand.plaats[i].value)
newContent += "<br> dat betekent<br>"
newContent += (nieuw[i])
newContent += " kilometer</body></html>"
newWindow.document.write(newContent)
newWindow.document.close()
}
//-->
</script>

<TITLE>aanvraag offerte</TITLE>     
<link href="stylelivtale.css" rel="stylesheet" type="text/css">
<h3>aanvraag offerte</h3>
<FORM >
welke plaats<br>
<select name="plaats">
                    <option value="Groningen" SELECTED>Groningen</option>
                    <option value="Amsterdam">Amsterdam</option>
                    <option value="Zwolle">Zwolle</option>
</select>
<br><br>
<INPUT TYPE="button" onclick="makeNewWindow(this.form)" VALUE="uw keuze">
</FORM>
</BODY>
</HTML>

Als ik de volgende code:
code:
1
newContent += (bestaand.plaats[i].value)

vervang voor deze:
code:
1
newContent += (bestaand[i])

dan blijkt de variabele leeg.
Volgens mij betent dat dat de "for" code die maakt dat de "i" van de variabele niet correct is.
Nogmaals, hij werkt wel bij de radio button, maar niet bij select.
Wat ik dus nodig heb is -volgens mij- een goede code die de "i" invult bij de select value waarde.
Mocht het helpen:
ik heb beide pgaina's, de foute (aproef) en de foute (bproef) ook online gezet:
[url]http://www.livingtale.nl\aproef.html[/url]
en
[url]http://www.livingtale.nl\bproef.html[/url]

[ Voor 60% gewijzigd door livingtale op 17-12-2004 20:42 ]

rein van der meij