Avatar billede 3z Nybegynder
28. juli 2005 - 20:53 Der er 10 kommentarer og
1 løsning

automatisk opdatere samlet pris

Ved ikke lige om dette er rette kategori...

Jeg har en ASP side med 6 indtastningsfelter.
Felt 1 er samlet pris og de 5 andre er underpriser.

Jeg har nu brug for 2 ting:
1 - Når man indtaster tal i de 5 valgfrie feltet, skal der et sted på siden være en automatisk sammentælling af disse 5 felter. Dette skal være uden man submitter formen, men blot ved at der tastes noget i et eller flere af de 5 felter. Denne sammentælling skal vise differencen mellem felt 1 (den samlede pris) og de 5 felter tilsammen.

2 - Hvis man forsøger at submitte formen og de 5 felter tilsammen ikke giver det samme som felt 1, skal der komme en advarsel. Summen af felt 2-6 skal altid være den samme som tallet i felt 1.

Håber I forstår :)
Avatar billede 3z Nybegynder
28. juli 2005 - 20:53 #1
Ved som sagt ikke om det skal laves i javascript, asp eller whatever...
Avatar billede busschou Praktikant
28. juli 2005 - 21:05 #2
det er javascript :o)
Avatar billede busschou Praktikant
28. juli 2005 - 21:06 #3
generelt alt du vil have skal ske dynamisk hos brugeren uden man submitter en form og på den måde kontakter serveren, skal ske i javascript og ikke asp, eftersom asp kun kører på serveren :o)
Avatar billede roenving Novice
28. juli 2005 - 21:08 #4
Og det er ganske rigtigt javascript, f.eks.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
function updateSum(f){
  var sum = chNumber(f.Pris1.value) + chNumber(f.Pris2.value) + chNumber(f.Pris3.value) + chNumber(f.Pris4.value) + chNumber(f.Pris5.value);
  var rest = chNumber(f.PrisIalt.value) - sum;
  document.getElementById('restSpan').innerHTML = rest;
  f.Send.disabled = rest != 0;
}
function chNumber(tal){
  if(!(""+tal).match(/^\d+(\.\d{0,2})?$/))
    return 0;
  else return +    tal;
}
</script>
</head>
<body>
<form id="minForm" name="minForm">
Samlet pris: <input id="PrisIalt" name="PrisIalt" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
Pris 1: <input id="Pris1" name="Pris1" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
Pris 2: <input id="Pris2" name="Pris2" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
Pris 3: <input id="Pris3" name="Pris3" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
Pris 4: <input id="Pris4" name="Pris4" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
Pris 5: <input id="Pris5" name="Pris5" type="text" value="0" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20" onchange="updateSum(this.form);"><br>
<input name="Send" type="submit" disabled>
</form>
Rest: <span id="restSpan">0</span>

</body>

</html>
Avatar billede roenving Novice
28. juli 2005 - 21:09 #5
Hov, min editor lavede liiige en fejl:

function chNumber(tal){
  if(!(""+tal).match(/^\d+(\.\d{0,2})?$/))
    return 0;
  else return +tal;
}
Avatar billede 3z Nybegynder
28. juli 2005 - 22:24 #6
Genialt - godt arbejde !
Avatar billede roenving Novice
28. juli 2005 - 23:17 #7
Velbekomme '-)

-- men 200 er alt for meget, så behold selv nogle af dine point ~!-)
Avatar billede 3z Nybegynder
28. juli 2005 - 23:26 #8
Forresten - hvordan er det lige man laver en kommentarlinie i javascript ?
Vil gerne lige smide et par kommentarer ind i koden, men kan ikke huske hvordan man gør...
Avatar billede roenving Novice
28. juli 2005 - 23:30 #9
/*
  Dette er en flere linjers kommentar
  som fortsætter
*/

//Her er en kommentar på een linje

-- og tak for point ;~}
Avatar billede 3z Nybegynder
28. juli 2005 - 23:32 #10
HOV det virker ikke hvis jeg bruger komma tal ???
Hvis jeg f.eks. skriver 125,50 så kan den ikke finde ud af beregningen ???
Avatar billede roenving Novice
28. juli 2005 - 23:36 #11
Nej, jeg har ikke indstillet den til at kunne bruge ukorrekte javascript-tal, men det er nu ikke så svært (men jeg gider ikke lave visningen i rest-feltet om !-)

function chNumber(tal){
  if(!(""+tal).match(/^\d+([\.,]\d{0,2})?$/))
    return 0;
  else return +((""+tal).replace(/,/,"."));
}
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
Kurser inden for grundlæggende programmering

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