12. maj 2006 - 11:59Der er
11 kommentarer og 1 løsning
Lægge værdier sammen?
Hej,
Jeg har en side, hvor jeg godt kunne tænke mig at have en <input type="text" name="total"> som løbende opdatere en værdi der bliver udregnet ved at lægge 3 felter sammen:
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<script type="text/JavaScript"> function laeg_sammen(f) {
tal1 = f.tal1.value.replace(",", "."); // erstat "," med "." da JavaScript regner med ".", og ikke "," tal2 = f.tal2.value.replace(",", "."); // erstat "," med "." da JavaScript regner med ".", og ikke "," tal3 = f.tal3.value.replace(",", "."); // erstat "," med "." da JavaScript regner med ".", og ikke ","
// kør funktionen sidste_tegn_ej_tal som checker om det sidste tegn er et ".".. Resultatet skulle gerne være "false": if (!sidste_tegn_ej_tal(tal1) && !sidste_tegn_ej_tal(tal2) && !sidste_tegn_ej_tal(tal3)) { f.total.value = +tal1 + +tal2 + +tal3; // læg tal sammen f.total.value = f.total.value.replace(".", ","); // erstat "." med "," da man bruger "," og ikke "." } }
function sidste_tegn_ej_tal(inputvalue) { // sammenlign det sidste tegn med "." if (inputvalue.substring(inputvalue.length - 1) == ".") { // hvis det sidste tegn er ".", er resultatet "true" return true; } else { // hvis det sidste tegn IKKR er ".", er resultatet "false" return false; } } </script>
Tal, der kommer fra tekst-inputs opfattes som oftest som strenge. Replace-funktionene virker jo som bekendt kun på tekst-strenge (den er en metode på String-objektet) - så når man har kørt den, er JS helt sikker på, du vil betragte værdien som en streng ;o)
Da det jo er et tilbagevendende problem, kunne man passende lave en lille wrapper (- og lægge den på JS' Math-objekt, så den ligger, hvor den hører til):
Så er det ligemeget, om man fylder tal eller strenge i begge metoder :)
Synes godt om
Ny brugerNybegynder
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.