Avatar billede d8tv Nybegynder
08. november 2004 - 13:34 Der er 6 kommentarer og
1 løsning

Validering af tekstfelter - læg to felter sammen og check værdien

Hej

Jeg skal checke indtastning i to inputfelter - lægge de to værdier sammen og blive promptet hvis den samlede værdi er over 100. Hvordan gøres dette i javascript.
F.eks. noget i retningen af:
If (theForm.felt1.value + theForm.felt2.value > 100);
{alert("værdi max 100"); return false;}

Hilsen
d8tv
Avatar billede roenving Novice
08. november 2004 - 13:42 #1
Må der være decimal-værdier ?-)

Så cirka sådan:

var f1 = theForm.felt1.value;
var f2 = theForm.felt2.value;
if(f1.match(/^\d+(\.\d+)?$/)&&f1.match(/^\d+(\.\d+)?$/)){
  if(+f1 + +f2 > 100){
    alert('Samlet værdi er over 100 !-)');
    theForm.felt1.focus();
    return false;
  }
}else{
  alert('Værdierne skal være tal');
  theForm.felt1.focus();
  return false;
}
Avatar billede olebole Juniormester
08. november 2004 - 13:43 #2
<ole>

<script type="text/JavaScript">
function validate(f) {
    if (parseInt(f.felt1.value) + parseInt(f.felt2.value) > 100) {
        alert("V\346rdi max. 100");
        return false;
    }
    return true
}
</script>

<form ... onsubmit="return validate(this)">

/mvh
</bole>
Avatar billede d8tv Nybegynder
08. november 2004 - 13:49 #3
Det virker fint med heltal
Der skal også være decimal-værdier (20,5 + 80) skal give fejlmeddelelse værdi over 100
Har du også en løsning på det?

Hilsen
d8tv
Avatar billede roenving Novice
08. november 2004 - 13:55 #4
var f1 = theForm.felt1.value.replace(",",".");
var f2 = theForm.felt2.value.replace(",",".");
if(f1.match(/^\d+(\.\d+)?$/)&&f1.match(/^\d+(\.\d+)?$/)){
  if(+f1 + +f2 > 100){
    alert('Samlet værdi er over 100 !-)');
    theForm.felt1.focus();
    return false;
  }
}else{
  alert('Værdierne skal være tal');
  theForm.felt1.focus();
  return false;
}
Avatar billede d8tv Nybegynder
08. november 2004 - 14:05 #5
Tak for hjælpen roenving

Det virker efter hensigten - elegant løsning

Hilsen
d8tv
Avatar billede roenving Novice
08. november 2004 - 14:51 #6
Velbekomme, men som jeg skrev allerførst, manglede du jo en angivelse af, om der skulle tillades decimal-værdier, og så var oleboles forslag jo også rigtigt '-)

-- så for mig ligner det en deler !-)
Avatar billede roenving Novice
08. november 2004 - 15:32 #7
Tak for point ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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