Avatar billede tl Nybegynder
04. september 2001 - 14:17 Der er 22 kommentarer og
1 løsning

checkbox og textbox beregning med javascript.

Hvordan kan man få en checkbox til at beregne et form felt ud fra en formel i javascript.

Jeg har en checkbox, der når den afkrydses skal betyde at der beregner en værdi i en textboks ved siden af.

Kan man gøre det i Javascript?
Tak
Avatar billede roenving Novice
04. september 2001 - 14:19 #1
Ja !!~]

Smid en onChange-handler ind i din <input>-tag, og skriv din beregning i Javascript der eller i en funktion, som kaldes derfra:

hth
jes
Avatar billede tl Nybegynder
04. september 2001 - 14:25 #2
Hvordan ændrer man så værdierne i html formen.
Avatar billede roenving Novice
04. september 2001 - 14:27 #3
Din tekstbox skal have et navn, så:

document.forms.formNavn.tekstboxNavn.value=denNyeVaerdi
Avatar billede senj Nybegynder
04. september 2001 - 14:27 #4
<html>
<head>
    <title>Untitled</title>
</head>

<body>

<script language=\"JavaScript\">

function udregn()
{
alert(\"der udregnes\");
document.form.f1.value = 10;
}

</script>

<form name = \"form\">
<input type = \"checkbox\" name = \"check\" value = \"tis\" onClick=\"java script:udregn();\">
<input type = \"text\" name = \"f1\" value = 0>
</form>

</body>
</html>
Avatar billede senj Nybegynder
04. september 2001 - 14:30 #5
Skriv tal i felt 1 og 2 og sæt hak i afkrydsningsfætteren

<html>
<head>
    <title>Untitled</title>
</head>

<body>

<script language=\"JavaScript\">

function udregn()
{
alert(\"der udregnes\");

a = parseInt(document.form.f2.value);
b = parseInt(document.form.f3.value);

document.form.f1.value = a+b;
}

</script>

<form name = \"form\">
Tal 1<input type = \"text\" name = \"f2\">
Tal 2<input type = \"text\" name = \"f3\"><br>
Udregn?<input type = \"checkbox\" name = \"check\" value = \"tis\" onClick=\"java script:udregn();\">
Resultat<input type = \"text\" name = \"f1\" value = 0>
</form>

</body>
</html>
Avatar billede olebole Juniormester
04. september 2001 - 14:37 #6
<ole>
Aldrig \'java script:\' i event-handlers! Kun i et links href, da du så anvender JavaScript-protokollen til at kalde et script med - i stedet for at kalde en side via http-protokollen.

Det er ikke en god ide at kalde en form for \'form\'. JavaScript kan godt finde på at rode begreberne sammen. Kald den noget andet  :)
/mvh
</bole>
Avatar billede senj Nybegynder
04. september 2001 - 14:38 #7
ja ja den er god med dig du!
Avatar billede tl Nybegynder
04. september 2001 - 14:40 #8
Har prøvet det ovenstående, men tilsyneladende virker min kode ikke :

<tr>
<td>
    <font face=\"Verdana,Geneva,Arial\" size=\"1\">Indbosum :</font>
</td>

<td title=\"Indbosum\">
<INPUT <% if (hufBean.getInbosum_checkbox()==true) {%>CHECKED<%}%> TYPE=CHECKBOX

NAME=\"indbosum_chk\" VALUE=\"Ja\" onChange=\"jumpTo()\";>
</td>


<td> <font face=\"Verdana,Geneva,Arial\" size=\"1\">Indbosum : <INPUT TYPE=TEXT

NAME=\"Indbosum_form\" VALUE=\"\" SIZE=9 MAXLENGTH=8></font>
</td>
</tr>

Jumpto bliver først kaldt når jeg opdaterer og den ser således ud :

<SCRIPT LANGUAGE=\"JavaScript\">
<!-- Start Hiding the Script

function jumpTo() {
  alert(\"der udregnes\");
  var Indbosum_vaerdi = 29.899 + (1.494 * (document.form.areal.value));
  document.form.Indbosum_form.value = 1000;

}

// Stop Hiding script --->
</SCRIPT>

og står i starten af JSP siden. Det er vel ligegyldigt hvor denne er placeret ?

Ellers kan jeg ikke se noget galt.

Tak.
T.
Avatar billede olebole Juniormester
04. september 2001 - 14:47 #9
senj >> Nå ja.....når du laver grundlæggende fejl, er det vel rimeligt at rette dig. Der er jo ingen grund til at udbrede misforståelser og fejl. Det er der allerede alt for mange, der gør  :)
/mvh
Avatar billede tl Nybegynder
04. september 2001 - 14:49 #10
hvad er så fejlen ?
Avatar billede senj Nybegynder
04. september 2001 - 14:50 #11
ja kom bare med den ole??
Avatar billede olebole Juniormester
04. september 2001 - 14:53 #12
Lad os se en URL, så vi kan se det færdige dokument - i parsed tilstand  :)
Avatar billede senj Nybegynder
04. september 2001 - 14:53 #13
tl>> hvis du tager mit script uden din JSP del så virker det. Du kan ændre formnavnet til noget andet.

Resten hører til under JSP
Avatar billede roenving Novice
04. september 2001 - 14:54 #14
>>tl
Hedder din form virkelig \'form\' -- det kan skabe problemer !

  var Indbosum_vaerdi = 29.899 + (1.494 * (document.form.areal.value));
  document.form.Indbosum_form.value = 1000;

og hvad bruger du variablen Indbosum_vaerdi til ??

og en lille detalje:
onChange=\"jumpTo();\"> //byttede om på ; og \"
Avatar billede tl Nybegynder
04. september 2001 - 15:02 #15
skal man skrive

document.forms.formNavn.tekstboxNavn.value

eller

document.formNavn.tekstboxNavn.value

?
Avatar billede senj Nybegynder
04. september 2001 - 15:03 #16
Den nederste!
Avatar billede tl Nybegynder
04. september 2001 - 15:09 #17
ok nu virker min beregning faktisk men der sker stadig ikke noget ved at trykke på min checkboks :

<td title=\"Indbosum\">
<INPUT <% if (hufBean.getInbosum_checkbox()==true) {%>CHECKED<%}%> TYPE=CHECKBOX

NAME=\"indbosum_chk\" VALUE=\"False\" onChange=\"jumpTo();\">
</td>


Noget galt her ?

Tak
Avatar billede olebole Juniormester
04. september 2001 - 15:10 #18
document.forms.formNavn.tekstboxNavn.value
document.forms[\"formNavn\"].tekstboxNavn.value
document.formNavn.tekstboxNavn.value
Er forskellige, men lige gangbare måder at kalde på.
/mvh
Avatar billede olebole Juniormester
04. september 2001 - 15:11 #19
onclick=\"jumpTo();\"
Avatar billede olebole Juniormester
04. september 2001 - 15:13 #20
Hvad sker her:
  if (hufBean.getInbosum_checkbox()==true)
...???
Det ville være muligt at finde fejlen med en URL. Det her kommer let til at ligne en online version af Lykkehjulet  :)
/mvh
Avatar billede tl Nybegynder
04. september 2001 - 15:15 #21
jeg prøver onclick..

desværre er jeg på indersiden af en firewall. Så ingen url desværre.

Avatar billede tl Nybegynder
04. september 2001 - 15:19 #22
onclick virker. kanon..

Nu mangler jeg så bare at afrunde resultatet til højeste tusind.. Finder der mon nogle rutiner i javascript der kan det ?

Mange tak, ellers.
Avatar billede roenving Novice
04. september 2001 - 15:22 #23
Brug Math.ceil(res/1000)*1000

Hvis du vil afrunde er det Math.round(res/1000)*1000
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester