Just nu i M3-nätverket
Jump to content

Beräkna flera fält med ett knapptryck...


lelkesp

Recommended Posts

... går detta att genomföra utan funktioner? Och i såfall hur?

 

Hej,

jag har 14 fält som jag vill skall räknas fram genom EN knapptryckning.

nedan följer 4 exempel:

this.form.b.value=(this.form.w.value*15)
this.form.v.value=(this.form.b.value/50)
this.form.s.value=((this.form.b.value/25)-this.form.s.value)
his.form.h3.value=((this.form.b,value/this.form.v.value)*6000)

/[blue]Jag har googlat och sökt, men intet funnit :stud

Stort tack för hjälpen :birp [/blue]

//Peter

 

Link to comment
Share on other sites

Vad menar du "utan funktioner"? Det blir ju så mycket mer överskådligt om du slänger in alla beräkningar i en funktion och bara kallar på den från onclick. Men visst kan du slänga in alla dessa inline. Då är det bara att separera varje beräkning med semikolon (;)

 

Link to comment
Share on other sites

Jag kan tyvärr inte ha funktioner, eftersom jag tänker konvertera till ebok/Mobipocket.

 

Mobipocket stöder inte funktioner enligt http://www.mobipocket.com/dev/article.asp?BaseFolder=prcgen&File=javascript.htm

 

Menar du att jag kan skriva som nedan?

onClick="this.form.b.value=(this.form.w.value*15);this.form.v.value=(this.form.b.value/50);this.form.s.value=((this.form.b.value/25)-this.form.s.value);this.form.h3.value=((this.form.b,value/this.form.v.value)*6000)”

 

Jag har googlat och sökt, men intet funnit

Stort tack för hjälpen :thumbsup:

//Peter

 

 

 

[inlägget ändrat 2006-09-14 11:07:17 av lelkesp]

Link to comment
Share on other sites

Menar du att jag kan skriva som nedan?

Ja, åtminstone för "stationära" webbläsare. Dock bör du använda ett standardiserat sätt att skapa referenser till element, antingen med getElementById eller getElementsByName

 

Link to comment
Share on other sites

Med koden:

<input name="y" type="button" onClick="this.form.b.value=(this.form.w.value*15);this.form.v.value=(this.form.b.value/50);this.form.s.value=((this.form.b.value/25)-this.form.s.value);this.form.m1.value=(this.form.b,value/50);this.form.h1.value=((this.form.b,value/this.form.v.value)*3000);
this.form.m2.value=(this.form.b,value/75);this.form.h1.value=((this.form.b,value/this.form.v.value)*4500);this.form.m3.value=(this.form.b,value/100);
this.form.h3.value=((this.form.b,value/this.form.v.value)*6000);this.form.m4.value=(this.form.b,value/150);
this.form.h1.value=((this.form.b,value/this.form.v.value)*9000)
" value="Beräkna">

får jag

NaN
när det gäller följande rader:
onClick="this.form.m2.value=(this.form.b,value/75);this.form.h1.value=((this.form.b,value/this.form.v.value)*4500);this.form.m3.value=(this.form.b,value/100);
this.form.h3.value=((this.form.b,value/this.form.v.value)*6000);this.form.m4.value=(this.form.b,value/150);
this.form.h1.value=((this.form.b,value/this.form.v.value)*9000)
"

 

Link to comment
Share on other sites

Du måste göra om värdet ifrån sträng-typ till tal-typ med parseInt().

Det är strängvärde du hämtar ifrån t ex this.form.w.value .

 

Link to comment
Share on other sites

tack..

men skulle du ha ork och lust att visa hur jag skall förfara?

Men varför funkar ngra av fälten?

<head>
<title>Pro-Epanutin</title>
<script type="text/javascript">

</script>
</head>
<body>

<form action="" method="get" name="proepanutin">
 vikt: 
<input name="w" type="text" size="7">
  kg<br>
<input name="y" type="button" onClick="this.form.b.value=(this.form.w.value*15);this.form.v.value=(this.form.b.value/50);this.form.s.value=((this.form.b.value/25) - this.form.s.value);this.form.m1.value=
(this.form.b,value/50);this.form.h1.value=((this.form.b,value/this.form.v.value)*3000);
this.form.m2.value=(this.form.b,value/75);this.form.m2.value=((this.form.b,value/this.form.v.value)*4500);this.form.m3.value=(this.form.b,value/100);this.form.h3.value=
((this.form.b,value/this.form.v.value)*6000);this.form.m4.value=(this.form.b,value/150);this.form.h4.value=((this.form.b,value/this.form.v.value)*9000);
" value="Beräkna"><br>
<br>
 Bolusdos: 
<input name="b" type="text" size="7">
  mg Fe <br>
 volym Pro-Epanutin: 
<input name="v" type="text" size="7">
  ml<br>
 spädes med : 
<input name="s" type="text" size="7">
  ml NaCl eller Glukos <br>
<br><table width="205" border="1">
 <tr>
   <th width="68" scope="col"><p>mg</p>
     <p>FE/min</p></th>
   <th width="54" scope="col">min</th>
   <th width="61" scope="col">ml/h</th>
 </tr>
 <tr>
   <td><div align="center">50</div></td>
   <td><input name="m1" type="text" size="10">
   </td>
   <td><input name="h1" type="text" size="10"></td>
 </tr>
 <tr>
   <td><div align="center">75</div></td>
   <td><input name="m2" type="text" size="10"></td>
   <td><input name="h2" type="text" size="10"></td>
 </tr>
 <tr>
   <td><div align="center">100</div></td>
   <td><input name="m3" type="text" size="10"></td>
   <td><input name="h3" type="text" size="10"></td>
 </tr>
 <tr>
   <td><div align="center">150</div></td>
   <td><input name="m4" type="text" size="10"></td>
   <td><input name="h4" type="text" size="10"></td>
 </tr>
</table>

     <input name="reset" type="reset" value="C">

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

[inlägget ändrat 2006-09-14 12:39:40 av lelkesp]

Link to comment
Share on other sites

Jag som var lite snabb i svaret men antagligen är det inte ett talvärde utan ett strängvärde i något fält som du vill använda i beräkningen.

 

Det går att göra uträkningar utan att omvandla värdet med parseInt() men om man nu vet med sig att det alltid ska vara i talform så gör om det till ett tal med parseInt().

 

Förresten kan jag ju också nämna att NaN står för "not a number".

 

Sen har det "smygit" sig in ett , istället för . på vissa platser.

this.form.b,value

 

Ett exempel med parseInt():

this.form.b.value=(parseInt(this.form.w.value)*15);

[inlägget ändrat 2006-09-14 13:06:47 av Micke_skane]

Link to comment
Share on other sites

Misstaget som gjorts är att du bytt ut punkter mot kommatecken på en massa platser, ex. i this.form.b,value

Skall naturligtvis vara this.form.b.value

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...