---
title: "inget händer vid knapptryckning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/141190-inget-händer-vid-knapptryckning/page2"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "ptr_lks"
published: "2006-01-20T08:31:15.000Z"
updated: "2006-01-22T16:47:12.000Z"
replies: 39
views: 1161
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/141190-inget-händer-vid-knapptryckning"
---

# inget händer vid knapptryckning

_Sida 2 av 2._

## #21 — ptr_lks, 2006-01-20T11:18Z

> **Palle skrev:**
>
> 1\. Visst gör det det, du slipper ex. att i funktionen fördefinera vilket formulär anropet ska gälla, och kan på så sätt lätt återanvända samma funktion för flera olika formulär.
> 
> 2\. Då jag personligen föredrar att flytta ut koden ur presentationslagret, och samlar alla dessa i en separat JS-fil, så anser jag att en bra skriven funktion är att föredra framför script och funktioner direkt i presentationslagret.

Menar du alltså att

> var f = document.sushi;

är att föredra?

Permalänk: https://www.webforum.nu/p/1751898

## #22 — Palle, 2006-01-20T12:22Z

Nej, jag föredrar this.form.. då kan jag lätt återanvända funktioner genom att skicka **this.form** till funktionen för att tala om vilket formulär som ska användas.

Med *var f = document.sushi;* har du ju låst upp dig genom att ange att formuläret du ska använda heter **sushi**..

Permalänk: https://www.webforum.nu/p/1751916

## #23 — Palle, 2006-01-20T12:29Z

..ex:

```
<html>
<head>

	<title>Sushi</title>
	<script type="text/javascript">
	function fCalculateSushi(objForm)
	{
		var lkal = ((132.2*46)/100);
		var lfett = ((4,83*46)/100);
		objForm.laxpts.value = (objForm.lax.value*(lkal + lfett));
	}
	</script>

</head>
<body>

<h2><strong>Omvandla Sushi bitar till points</strong></h2>

<form method="post" action="">
<table width="331" border="0">
<tr>
<td><input type="text" name="lax" size="5">&nbsp;bit&nbsp;Lax sushi</td>
<td><input type="button" onClick="fCalculateSushi(this.form);" value="ger"></td>
<td><input type="text" name="laxpts" size="5">&nbsp;points</td>
</tr>
</table>
</form>

</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1751920

## #24 — ptr_lks, 2006-01-20T12:46Z

tack palle

> **Palle skrev:**
>
> Nej, jag föredrar this.form.. då kan jag lätt återanvända funktioner genom att skicka **this.form** till funktionen för att tala om vilket formulär som ska användas.

Och tala om gör du genom att byta ut

> objForm =\> this.form

förstår jag rätt?

Permalänk: https://www.webforum.nu/p/1751934

## #25 — Palle, 2006-01-20T13:00Z

Nej.. asså endast **i formuläret** använder jag this.form i funktionsanropet.
Det fungerar inte att använda this.form innuti en funktion, det måste användas
innuti ett formulär för att tala om att det är **detta formulär** som gäller. :)

ex.

I vårt fall med din kod så heter ju funktionen **fCalculateSushi**, så vårt funktionsanrop på knappen ser ut så här:

```
...
<form method="post" action="">
...
<td><input type="button" onClick="fCalculateSushi(this.form);" value="ger"></td>
...
</form>
...
```

..och detta tar jag sedan emot i funktionen..

```
function fCalculateSushi(objForm)
{
	...
}
```

..där objForm i funktionen nu fungerar som  en referensen till formulär-objektet.
Jag kan ha döpt den till lingon eller banan istället, det spelar mindre roll, dock bör man
ju döpa den så man själv förstår vad den är och vad den gör - i detta fall **formulär objektet** \= **objForm**.

Hänger du med? :)

Permalänk: https://www.webforum.nu/p/1751939

## #26 — ptr_lks, 2006-01-20T13:14Z

> **Palle skrev:**
>
> Hänger du med? :)

det känns så...

Permalänk: https://www.webforum.nu/p/1751942

## #27 — ptr_lks, 2006-01-20T13:21Z

fast nu ahr jag ett nytt problem

så här ser funktionen ut:

> function fpointsSushi(objForm)
> 	{
> 		var val = objForm.sushi.value=Math.round(((objForm.lx.value\*(lxkal+lxfett))+(objForm.tf.value\*(tfkal+tffett))+
> 		         (objForm.re.value\*(rekal+refett))+(objForm.ks.value\*(srkal+kskal+ksfett))+
> 				 (objForm.av.value\*(srkal+avkal+avfett)))\*10)/10;
> 		
> 		
> 	}

1. på variabeln var - ta fram decimalen
2. om decimalen är mellan 0 och 0,29 =\> avrunda ner till närmaste heltal
3. om decimalen är mellan 0 och 0,25 =\> avrunda till 0,5
4. om decimalen är mellan 0,55 och 0, 99 =\> runda uppåt till närmase heltal

 

Tack för ordet
/ptr

Permalänk: https://www.webforum.nu/p/1751946

## #28 — Palle, 2006-01-20T13:26Z

Visa hela koden du har nu. :)

Permalänk: https://www.webforum.nu/p/1751949

## #29 — ptr_lks, 2006-01-20T13:45Z

> **Palle skrev:**
>
> Visa hela koden du har nu. :)

här kommer den
/ptr

PS. har inte fått "reset-knappen" funka

Bilagor:

- [hela_koden.txt](https://www.webforum.nu/a/9343.txt)

Permalänk: https://www.webforum.nu/p/1751954

## #30 — ptr_lks, 2006-01-20T14:02Z

reset-knappen

Hej,
ff ger 

> Fel: invalid assignment left-hand side
> Källkodsfil: file:///C:/Mina_projekt/JacaScript/sushi1.html
> Rad: 1, kolumn: 120
> Källkod:
> objForm.sushi.value && objForm.lx.value && objForm.tf.value && objForm.re.value && objForm.ks.value && objForm.av.value =

 
koden ser ut som följer

```
<input name="reset" type="button" onClick="objForm.sushi.value && objForm.lx.value && objForm.tf.value && objForm.re.value && objForm.ks.value && objForm.av.value =""" value="Rensa">
```

tack för ordet
/ptr

Permalänk: https://www.webforum.nu/p/1751963

## #31 — Peter S, 2006-01-20T14:10Z

```
&& -> =
```

och

```
="" -> =''
```

Permalänk: https://www.webforum.nu/p/1751967

## #32 — ptr_lks, 2006-01-20T14:12Z

> **Peter S skrev:**
>
> ```
> && -> =
> ```
>
> 
> och
> 
>
>
> ```
> ="" -> =''
> ```

menar du att jag skall ersätta dubbelfjuttarna med enkelfjuttar?

Permalänk: https://www.webforum.nu/p/1751969

## #33 — Peter S, 2006-01-20T14:13Z

Ja  :)

Permalänk: https://www.webforum.nu/p/1751970

## #34 — ptr_lks, 2006-01-20T14:16Z

> **Peter S skrev:**
>
> Ja  :)

har bytt ut && -\> &
och ersatt till enkelfjuttar

```
<input name="reset" type="button" onClick="objForm.sushi.value & objForm.lx.value & objForm.tf.value & objForm.re.value &objForm.ks.value & objForm.av.value =''" value="Rensa">
```

fortfarande samma fel

Permalänk: https://www.webforum.nu/p/1751974

## #35 — Peter S, 2006-01-20T14:18Z

För att citera mig själv:

> **Peter S skrev:**
>
> && -\> =

Permalänk: https://www.webforum.nu/p/1751975

## #36 — ptr_lks, 2006-01-20T14:19Z

> **Peter S skrev:**
>
> För att citera mig själv:

jag trodde att det räcker med att skriva och  :q
dessutom var jag tvungen att ersätta

```
objForm => this.Form
```

Permalänk: https://www.webforum.nu/p/1751978

## #37 — Peter S, 2006-01-20T14:26Z

&& är en logisk operator som returnerar sant eller falskt. Den kan du inte använda i tilldelningar på det viset.

Ang. ersättningen; om inte objForm innehåller en referens till this.form så måste du göra som du gjort.

Permalänk: https://www.webforum.nu/p/1751985

## #38 — ptr_lks, 2006-01-21T14:04Z

> **Palle skrev:**
>
> Nej.. asså endast **i formuläret** använder jag this.form i funktionsanropet.
> Det fungerar inte att använda this.form innuti en funktion, det måste användas
> innuti ett formulär för att tala om att det är **detta formulär** som gäller. :)

Om jag inte kan använda funktion, skall jag då använda:

```
onclick="this.form.textnamn.value=..."
```

Permalänk: https://www.webforum.nu/p/1752350

## #39 — Peter S, 2006-01-21T15:38Z

Alldeles riktigt.

Permalänk: https://www.webforum.nu/p/1752386

## #40 — ptr_lks, 2006-01-22T16:47Z

Tack för all hjälp...
Bifogar det färdiga och fungerande skriptet

Bilagor:

- [färdig_script.txt](https://www.webforum.nu/a/9378.txt)

Permalänk: https://www.webforum.nu/p/1752741

---

Tråden på webben: https://www.webforum.nu/amne/javascript/141190-inget-händer-vid-knapptryckning/page2  
Föregående sida: https://www.webforum.nu/amne/javascript/141190-inget-händer-vid-knapptryckning.md
