mappoMedlem sedan apr. 2001664 inlägg Jag har en busenkel sida med ett formulär som tar in fyra värden,
räknar lite och spottar ut ett femte.
Alla de fem fälten står under varandra i en kolumn och sidan har
en submitknapp.
Jag vill lägga till följande finess:
När man matat in värde 1 trycker man på ENTER. Markören hoppar
då till nästa fält och man kan mata in värde 2 osv..
När man tryckt ENTER efter att ha matat in det fjärde värdet,
SUBMITTAR (svengelska är vackert) formuläret värdena och
"svaret" ploppar upp i det femte fältet.
Är detta möjligt?
if (document.Formularet.Input_1.value.length <> 0){
document.Formularet.Input_2.focus();
}
..osv...typ..
(helt otestat, men det borde funka)
mappoMedlem sedan apr. 2001664 inlägg Nej, det verkar inte funka men det kanske beror på att jag skriver
det på fel ställe...
Nu har min kod följande struktur:
<script>
window.onload = function()
{ document.FORMULÄR.INPUT_1.focus(); }
function FUNKTION()
variabeldeklarationer
diverse räknande
ut med svaret
<script>
Ska "din" kod stå inne i FUNKTION eller utanför?
mappoMedlem sedan apr. 2001664 inlägg Hmm ...
Jag såg just att jag inte gett formulärtaggen något onSubmit-attribut...
Är det dåligt? :)
Om någon orkar besvara mina frågor, kan de betrakta koden på
http://www.ing.umu.se/~id01mht/points.html
Ett senare projekt blir att lägga till en replace så att man kan mata
in med det numeriska tangentbordet.
Detta är mitt första JS och därför mest ett experiment.
Det första jag skriver då jag lär mig ett nytt programmeringsspråk
brukar bli en Celcius/Farenheitkonverterare, men så hade en god
vän till mig gått med i ViktVäktarna och undrade om jag kunde
skriva ett program för att räkna ut hur många points olika
livsmedel motsvarar.
mappoMedlem sedan apr. 2001664 inlägg Jag hittade ett script med exakt den finessen jag bad om i mitt
första inlägg: http://home.cogeco.ca/~ve3ll/jstutor5.htm#mu
Men det innehåller även lite annat som jag inte begriper mig på...
(T.ex. hur man använder vektorer.)
Men om någon kan lägga ihop två å två åt mig, vore jag taxam. :)
dectgapMedlem sedan sep. 20021 655 inlägg Är det så här du vill ha det?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Räkna Points</title>
<script language="javascript" type="text/javascript">
window.onload = function()
{
document.calc.cal.focus();
}
function goNext(theForm){
var e = theForm.elements;
for(i=0; i<4; i++){
if(isNaN(e[i].value) || e[i].value==''){
e[i].focus();
return false;
}
}
return points();
}
function points()
{
var cal=document.calc.cal.value;
var fat=document.calc.fat.value;
var fib=document.calc.fib.value;
var mgd=document.calc.mgd.value;
var pts=document.calc.pts.value;
if (fib > 4)
fib = 4;
P = cal/50 + fat/12 - fib/5;
P = P*mgd/100;
P = Math.round(P*100)/100;
document.calc.pts.value = P;
return false;
}
</script>
</head>
<b>Obs!</b><br>Använd punkt (inte komma) som decimaltecken.<br><br>
<form name="calc" action="ingen" onsubmit="return goNext(this)">
<table border = "0">
<tr>
<td align = "right">kilokalorier per 100 g:</td>
<td><input type = "text" name = "cal" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram fett per 100 g:</td>
<td><input type = "text" name = "fat" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram fibrer per 100 g:</td>
<td><input type = "text" name = "fib" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram att äta:</td>
<td><input type = "text" name = "mgd" size = "5"> </td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td align="center"><input type = "submit" value = "Räkna"></td>
<td><input type = "text" name = "pts" size = "5"> <a target="_blank" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=1&f=G&l=50&s1=6040531.WKU.&OS=PN/6040531&RS=PN/6040531">Points</a></td>
</tr>
</table>
</form>
<br><br>
<a target="_blank" href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.ing.umu.se%2F%7Eid01mht%2Fpoints.html&charset=%28detect+automatically%29&doctype=%28detect+automatically%29"><img src="valid-html401_mj.png" alt="Valid HTML 4.01 Transitional" title=" ValidHTML 4.01 Transitional" border="0"></a>
</html>
mappoMedlem sedan apr. 2001664 inlägg YES!
Precis så ville jag ha det, tack!
Nu behövs ju egentligen inte SUBMITknappen.
Har du något tips på hur jag ska bli av med den?
Sedan ska jag se ifall jag klarar av att lägga till en REPLACE så
att man kan mata in via det numeriska tangentbordet...
dectgapMedlem sedan sep. 20021 655 inlägg Låt submit-knappen vara. Den används med "onsubmit", som ändå aldrig kommer att skicka iväg formuläret eftersom goNext() alltid returnerar false.
Om jag förstår dig rätt vill du att komman skall göras om till punkter. Det gör du smidigast så här:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Räkna Points</title>
<script language="javascript" type="text/javascript">
window.onload = function()
{
document.calc.cal.focus();
}
function goNext(theForm){
var e = theForm.elements;
for(i=0; i<4; i++){
e[i].value = e[i].value.replace(/,/g, '.');
if(isNaN(e[i].value) || e[i].value==''){
e[i].focus();
return false;
}
}
return points();
}
function points()
{
var cal=document.calc.cal.value;
var fat=document.calc.fat.value;
var fib=document.calc.fib.value;
var mgd=document.calc.mgd.value;
var pts=document.calc.pts.value;
if (fib > 4)
fib = 4;
P = cal/50 + fat/12 - fib/5;
P = P*mgd/100;
P = Math.round(P*100)/100;
document.calc.pts.value = P;
return false;
}
</script>
</head>
<b>Obs!</b><br>Använd punkt (inte komma) som decimaltecken.<br><br>
<form name="calc" action="ingen" onsubmit="return goNext(this)">
<table border = "0">
<tr>
<td align = "right">kilokalorier per 100 g:</td>
<td><input type = "text" name = "cal" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram fett per 100 g:</td>
<td><input type = "text" name = "fat" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram fibrer per 100 g:</td>
<td><input type = "text" name = "fib" size = "5"> </td>
</tr>
<tr>
<td align = "right">gram att äta:</td>
<td><input type = "text" name = "mgd" size = "5"> </td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td align="center"><input type = "submit" value = "Räkna"></td>
<td><input type = "text" name = "pts" size = "5"> <a target="_blank" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=1&f=G&l=50&s1=6040531.WKU.&OS=PN/6040531&RS=PN/6040531">Points</a></td>
</tr>
</table>
</form>
<br><br>
<a target="_blank" href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.ing.umu.se%2F%7Eid01mht%2Fpoints.html&charset=%28detect+automatically%29&doctype=%28detect+automatically%29"><img src="valid-html401_mj.png" alt="Valid HTML 4.01 Transitional" title=" ValidHTML 4.01 Transitional" border="0"></a>
</html>