Avatar billede ducks Nybegynder
11. juli 2003 - 00:46 Der er 16 kommentarer og
1 løsning

Text box må kun indeholde tal

Hvordan kan jeg med JavaScript, finde ud af om en text box (<input type="text"...) kun indeholder tal?

Jeg er kommet frem til det her, med lidt hjælp:

(document.pm.ID.value.match(/^[0-9]+$/)

Men der er stadig fejl i.

(pm = Form navn
ID = textbox navn)
Avatar billede roenving Novice
11. juli 2003 - 00:47 #1
Hvilke fejl ?-)
Avatar billede ducks Nybegynder
11. juli 2003 - 00:49 #2
function validerpm() {
    if((document.pm.ID.value.match(/^[0-9]+$/)) || (document.pm.modtager.value=='') && (document.pm.ID.value=='') || (document.pm.titel.value=='') || (document.pm.tekst.value=='')) {       
      alert('Fejl!\nAlle felter skal være udfyldt.');
      return false;   
    }
  }

Den popup kommer ikke, hvis der fx står awkæ i textboxen.
Avatar billede roenving Novice
11. juli 2003 - 00:52 #3
if(!document.pm.ID.value.match(/^[0-9]+$/)){
    alert('fejl');
    }
fungerer ...
Avatar billede ducks Nybegynder
11. juli 2003 - 00:59 #4
Ok, jeg havde vidst en } for meget med...


Men hvis jeg kun udfylder ID med et nr. og titel samt tekst, siger den at alle felter ikke er udfyldt.

  function validerpm() {
    if((document.pm.modtager.value=='') && (document.pm.ID.value=='') || (document.pm.ID.value.match(/^[0-9]+$/)) || (document.pm.titel.value=='') || (document.pm.tekst.value=='')) {       
      alert('Fejl!\nAlle felter skal være udfyldt.');
      return false;
    }
  }
Avatar billede ducks Nybegynder
11. juli 2003 - 01:00 #5
Det skal virke sådan, at hvis ID er udfyldt med et nr er det ok også selvom modtager er tom, hvis modtager har en værdi må ID godt være tom, de andre 2 skal altid være udfyldt.
Avatar billede roenving Novice
11. juli 2003 - 01:11 #6
Sådan ?-)

  function validerpm() {
    f = document.pm;
    if((f.titel.value==''||f.tekst.value=='')||(f.modtager.value!=''||!f.ID.value.match(/^[0-9]+$/))){       
      alert('Fejl!\nAlle felter skal være udfyldt.');
      return false;
    }
  }
Avatar billede ducks Nybegynder
11. juli 2003 - 01:14 #7
Men sammen med alt det andet?
Avatar billede ducks Nybegynder
11. juli 2003 - 01:14 #8
Sorry men jeg er ikke så god til JavaScript, ved egentlig ikke engang hvad || && står for.
Avatar billede ducks Nybegynder
11. juli 2003 - 01:21 #9
Lige nu virker det vidst fint, bortset fra, at når jeg har udfyldt modtager, titel og tekst siger den at alle felter ikke er udfyldt
Avatar billede roenving Novice
11. juli 2003 - 01:28 #10
Så prøv at skifte den SIDSTE || ud med && -- der var en lille logisk lapsus ...
Avatar billede ducks Nybegynder
11. juli 2003 - 01:38 #11
Altså sådan:
if((f.titel.value==''||f.tekst.value=='')||(f.modtager.value!=''&&!f.ID.value.match(/^[0-9]+$/))){

Stadig det samme.
Avatar billede roenving Novice
11. juli 2003 - 01:40 #12
Jeg fik ikke taget de fulde logiske konsekvenser -- men sådan skulle den være der ,-)

Har selvfølgelig ikke testet den i alle detaljer men de ti forskellige tilfælde jeg kunne finde på umiddelbart holder alle ...

function validerpm() {
    f = document.pm;
    if((f.titel.value==''||f.tekst.value=='')||(f.modtager.value==''&&!f.ID.value.match(/^[0-9]+$/))){       
      alert('Fejl!\nAlle felter skal være udfyldt.');
      return false;
    }
  }
Avatar billede ducks Nybegynder
11. juli 2003 - 01:42 #13
Takker... Point?
Avatar billede roenving Novice
11. juli 2003 - 01:43 #14
Det var jo lige før jeg måtte have papir og blyant frem, da jeg skulle bygge logikken -- derfor de den dobbelte fejl *gg*

Velbekomme '-)
Avatar billede ducks Nybegynder
11. juli 2003 - 01:47 #15
Jeg synes selv de 2 ting jeg indtil videre har lavet i aften (se evt. min profil, for at se det andet), har krævet meget hjernearbejde :\
Avatar billede roenving Novice
11. juli 2003 - 01:51 #16
*gg*

-- og tak for points ;~}
Avatar billede roenving Novice
11. juli 2003 - 01:54 #17
Ja, SQL-joins kan være en videnskab, men SQL er så simpelt et sprog, at det næsten kan stå på to A4-ark -- men det betyder også omvendt, at man skal holde tungen lige i munden ...

Jeg så engang en SQL-formel, som fyldte 40 linjer -- godt jeg ikke skulle debugge !-)
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