PalleMedlem sedan apr. 20003 174 inlägg 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..
PalleMedlem sedan apr. 20003 174 inlägg ..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"> bit Lax sushi</td>
<td><input type="button" onClick="fCalculateSushi(this.form);" value="ger"></td>
<td><input type="text" name="laxpts" size="5"> points</td>
</tr>
</table>
</form>
</body>
</html>
ptr_lksMedlem sedan juni 2005584 inlägg 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?
PalleMedlem sedan apr. 20003 174 inlägg 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? :)
ptr_lksMedlem sedan juni 2005584 inlägg 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;
}
- på variabeln var - ta fram decimalen
- om decimalen är mellan 0 och 0,29 => avrunda ner till närmaste heltal
- om decimalen är mellan 0 och 0,25 => avrunda till 0,5
- om decimalen är mellan 0,55 och 0, 99 => runda uppåt till närmase heltal
Tack för ordet
/ptr
PalleMedlem sedan apr. 20003 174 inlägg Visa hela koden du har nu. :)
ptr_lksMedlem sedan juni 2005584 inlägg
Palle skrev:
Visa hela koden du har nu. :)
här kommer den
/ptr
PS. har inte fått "reset-knappen" funka
ptr_lksMedlem sedan juni 2005584 inlägg 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
ptr_lksMedlem sedan juni 2005584 inlägg
Peter S skrev:
&& -> =
och
="" -> =''
menar du att jag skall ersätta dubbelfjuttarna med enkelfjuttar?
ptr_lksMedlem sedan juni 2005584 inlägg
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
Peter SMedlem sedan dec. 20025 483 inlägg För att citera mig själv:
Peter S skrev:
&& -> =
ptr_lksMedlem sedan juni 2005584 inlägg
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
Peter SMedlem sedan dec. 20025 483 inlägg && ä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.
ptr_lksMedlem sedan juni 2005584 inlägg
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=..."
ptr_lksMedlem sedan juni 2005584 inlägg Tack för all hjälp...
Bifogar det färdiga och fungerande skriptet