Toon posts:

[javascript] radiobutton

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo allemaal,

ik ben bezig met een bestelformulier waarbij m.b.v. javascript bedragen uitgerekend moeten worden. vervolgens moet men via een radiobutton de betalingswijze opgeven, waarna de kosten van deze betalingswijze in een tekstvak moet komen te staan. ik krijg het niet voor elkaar bij het veranderen van de betaalkeuze het verzendbedrag in de tekstbox te plaatsen.

<script type="text/javascript">
<!--
function verzenden()
if (document.bestelling.verzenden[1].checked)
{
document.bestelling.transport.value= "€" + 6.50;
}
else
{
if (document.bestelling.verzenden[2].checked)
{
document.bestelling.transport.value= "€" + 11.50;
}
}
//-->
</script>

met radiobuttons:

<input name="verzenden" type="radio" onClick="verzenden()" value="1">
<input name="verzenden" type="radio" onClick="verzenden()" value="2">

zie: http://www.schravencomputers.nl/vinhosdeportugal/bestellen.htm

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Als je je radio's een ID geeft kan je met getElementById je radiobuttons opvragen vanuit javascript. Verder zou ik persoonlijk geen onclick gebruiken, maar onchange.

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
code:
1
2
<input id="verzenden1" name="verzenden" type="radio" onClick="verzenden()" value="1">
<input id="verzenden2" name="verzenden" type="radio" onClick="verzenden()" value="2">


en dan in je code ipv verzenden[1] gewoon verzenden1 gebruiken.

en eigenlijk met document.getElementById('verzenden1') gebruiken...

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 10:06

RM-rf

1 2 3 4 5 7 6 8 9

Persoonlijk ben ik absoluut geen voorstander van het gebruiken van DOM voor het opvragen van Form-elementen..

het document.forms-object model voldoet al geheel voor HTML-forms, is ouder dan DOM en meestal een stuk minder problamtisch qua implementatie:

voor een goed artikel, zie de PPK site quirksmode:
http://www.quirksmode.org/js/forms.html

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
ik blijf proberen maar krijg hem nog steeds niet aan de praat. ik heb de radiobuttons een id gegeven, zoals je zei. iig bedankt voor snelle reactie

<script type="text/javascript">
<!--
function verzenden()
if (document.bestelling.getElementById('verzenden1').checked = true)
{
document.bestelling.transport.value= "€" + 6.50;
}
else
{
if (document.bestelling.getElementById('verzenden2').checked = true)
{
document.bestelling.transport.value= "€" + 11.50;
}
}
//-->
</script>

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
Correct me if I'm wrong, maar waarschijnlijk pakt ie dat euro-teken ook niet. Probeer is & euro; (aan elkaar) ipv €.

[ Voor 27% gewijzigd door Tsunami op 09-03-2005 17:44 ]


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 10:06

RM-rf

1 2 3 4 5 7 6 8 9

misschien het openen van brackets direct na function verzenden() ?
dus:
code:
1
2
3
4
5
6
7
8
9
function verzenden() {
   if (document.bestelling.getElementById('verzenden1').checked = true)
   {
      document.bestelling.transport.value= "€" + 6.50;
   } else if (document.bestelling.getElementById('verzenden2').checked = true)
   {
      document.bestelling.transport.value= "€" + 11.50;
   }
}

[ Voor 70% gewijzigd door RM-rf op 09-03-2005 17:44 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
het ligt helaas niet aan de brackets en ook niet aan het euro teken.

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
kun je niet beter testen op de .value van radiobutton ipv op de .checked? en/of doet if(a = b) in JS eigenlijk wel hetzelfde als if(a==b)?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

waarom doe je niet zoiets:
HTML:
1
2
<input type="radio" name="verzenden" value="1" onclick="verzenden(this.form, this.value)">
<input type="radio" name="verzenden" value="2" onclick="verzenden(this.form, this.value)">

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function verzenden(form, value)
{
  var transport = '';
  switch(value)
  {
    case '1':
      transport = '€ 6.50';
      break;
    case '2':
      transport = '€ 11.50';
      break;
  }
  form.elements['transport'].value = transport;
}

Intentionally left blank


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Ik weet niet of je de producten hierna serverside opnieuw gaat optellen, maar dat is wel aan te raden, want iedereen kan gewoon vanuit zijn adresbalk het totaal aanpassen en op verzenden drukken....

code:
1
javascript: document.forms['bestelling'].elements['totaalbedrag'].value = '1.00'; void(0);

gewoon dat je iig niet ff blind van dat bedrag uit gaat ;)

Verwijderd

Topicstarter
na weer een paar uren proberen met de tips is het me nog steeds niet gelukt om het werkend te krijgen helaas...

function verzenden(form, value)
{
var transport = '';
switch(value)
{
case '1':
transport = '€ 6.50';
break;
case '2':
transport = '€ 11.50';
break;
}
form.elements['transport'].value = transport;
}

die werkt ook niet
misschien zit het probleem ergens anders in?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

ah ja, je JS functie dezelfde naam geven als een named element is ook vragen om moeilijkheden ;)

Compleet werkend voorbeeld:
HTML:
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
<html>
    <head>

        <title>form</title>

        <script type="text/javascript">

            function verzendkosten(form, value)
            {
                var transport = '';
                switch(value)
                {
                    case '1':
                        transport = '€ 6.50';
                        break;
                    case '2':
                        transport = '€ 11.50';
                        break;
                }
                form.elements['transport'].value = transport;
            }

        </script>
    </head>
    <body>
        <form action="#">

            optie 1<input type="radio" name="verzenden" value="1" onclick="verzendkosten(this.form, this.value)">
            optie 2<input type="radio" name="verzenden" value="2" onclick="verzendkosten(this.form, this.value)">

            <br><input type="text" name="transport">

        </form>
    </body>
</html>

Intentionally left blank


Verwijderd

Topicstarter
heel erg bedankt !!! hij werkt nu
Pagina: 1