Avatar billede spidr Nybegynder
26. februar 2005 - 12:44 Der er 13 kommentarer og
1 løsning

Tjekke om intastet tal er for stort

Ok, jeg har en form hvor jeg har 4 forskellige produkter med kun et bestemt antal på lager (alt det står i en database)
så vil jeg lave det sådan at på bestlilling systemet kan man kun bestille det antal der er på lager af hver enkelt, nogen idéer til hvordan jeg kan gøre det?
Avatar billede roenving Novice
26. februar 2005 - 12:51 #1
Udskriv antallet fra din database i et javascript-array, og check om tallene er i orden onblur på indtastnings-felterne ...

-- hvad vil du iøvrigt gøre, hvis der tilfældigvis er to der bestiller samtidigt ?-)

-- nåja, man kan jo ikke tage højde for alt, men måske er det på sin plads at tage et forbehold !-)

<script type="text/javascript">
var antal = [<?echo $noget?>,<?echo $noget?>,<?echo $noget?>,<?echo $noget?>];
</script>

<input ... onblur="if(+this.value>antal[0]){alert('Du kan kun bestille op til '+antal[0]+' af denne vare !-)');this.select();return false;">
Avatar billede roenving Novice
26. februar 2005 - 12:52 #2
-- hov, der mangler en slut-tuborg:

<input ... onblur="if(+this.value>antal[0]){alert('Du kan kun bestille op til '+antal[0]+' af denne vare !-)');this.select();return false;}">
Avatar billede spidr Nybegynder
26. februar 2005 - 13:11 #3
jah det har du helt ret i, det skal man også lige taenke på, men så mange kunder kommer der slet ikke, og det betyder ikke ngoet med et par i minus.

tilbage til koden, så vil jeg lige sige at jeg er meget langt bagefter hvad java-script angår så håber du vil hjaelpe lidt mere.

Jeg forstår nemlig ikke helt hvad jeg skal gøre med den.
i alle de der $noget skal der stå hvor mange der er af hver enkelt eller hvad? (for det er jo lidt besvaertligt at skrive ud påd en måde, jeg ville foretraejje hvis det stof i inputtet istedet, hvis det kan lade sig gøre. Sådan at der bare er en linie til hver)
Avatar billede roenving Novice
26. februar 2005 - 13:14 #4
Det kan du også, f.eks.

<input ... onblur="if(+this.value><?echo $noget?>){alert('Du kan kun bestille op til '+<?echo $noget?>+' af denne vare !-)');this.select();return false;}">
Avatar billede spidr Nybegynder
26. februar 2005 - 13:15 #5
Super cool, det er helt perfekt, det vil jeg straks teste :D
For jeg et svar ?
Avatar billede roenving Novice
26. februar 2005 - 13:16 #6
Velbekomme '-)
Avatar billede spidr Nybegynder
26. februar 2005 - 13:17 #7
Kan man evt. gøre sådan at hvis man skriver andet end tal så laver den det om til et 0? i samme kode :D
Avatar billede roenving Novice
26. februar 2005 - 13:24 #8
Ja, men så bliver det en lang kode i hvert input, så vil jeg foretrække at lave en funktion:

<script type="text/javascript">
function checkInput(elm,val){
  var elmVal = (elm.value.match(/^\d+$/))?+elm.value:0;
  elm.value = elmVal;
  if(elmVal > val){
    alert(''Du kan kun bestille op til '+ val +' af denne vare !-)');
    return false;
  }
  return true;
}
</script>

<input ... onblur="checkInput(this,<?echo $noget?>);">
Avatar billede spidr Nybegynder
26. februar 2005 - 13:25 #9
og den funktion vil virke på hver enkelt med

<input ... onblur="checkInput(this,<?echo $noget1?>);">

<input ... onblur="checkInput(this,<?echo $noget2?>);">

f.eks ?
For så er den helt perfekt :)
Avatar billede roenving Novice
26. februar 2005 - 13:40 #10
Jepz !-)
Avatar billede spidr Nybegynder
26. februar 2005 - 13:49 #11
Nu virker den helt perfekt, der er bare lige en ting, når man skriver f.eks. 999 i et felt hvor der højst må stå 10, så skriver den at der højest må stå 10, men man kan sagtens fortsaette og skrive videre i et andet felt, og det er jo ikke så smart :)
Avatar billede roenving Novice
26. februar 2005 - 13:57 #12
<script type="text/javascript">
function checkInput(elm,val){
  var elmVal = (elm.value.match(/^\d+$/))?+elm.value:0;
  elm.value = elmVal;
  if(elmVal > val){
    alert('Du kan kun bestille op til '+ val +' af denne vare !-)');
    elm.value = val;
    return false;
  }
  return true;
}
</script>

-- så har jeg indsat, at den regulerer antallet i feltet, for jeg syntes, at jeg på et tidspunkt havde haft succes med at returnere false til onblur, men det må være noget andet, jeg huskede !-)
Avatar billede spidr Nybegynder
26. februar 2005 - 17:50 #13
Super fedt .D

Tusind tak :)
Avatar billede roenving Novice
26. februar 2005 - 20:40 #14
-- og jeg takker 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