Avatar billede mite Nybegynder
08. september 2004 - 12:19 Der er 6 kommentarer og
1 løsning

Tomt felt i inputfelt

Hej eksperter

Jeg har en masse felter hvor der kun må indtastes tal (både negative og positive) og felterne må ikke være tomme når data accepteres ved tryk på en knap.
Det jeg selv har fundet ud af er følgende:

<input onblur=""if(isNaN(this.value))alert('Du kan kun indtaste tal.') || this.focus()"">

Feltet acceptere kun tal (negative og positive) men er ligeglad med om feltet er tomt. Jeg har prøvet en masse, men uden held. Problemt er når man sætter focus har det næste felt fået focus og så vil den så og hoppe imellem de to felter. Håber der er en derude der lige kan ryste det ud af ærmet.

På forhånd tak.

Se samme spørgsmål i kategorien ASP - der var ikke brugbart svar i denne kategori. http://www.eksperten.dk/spm/537408
Avatar billede roenving Novice
08. september 2004 - 12:24 #1
Husk at lukke det andet spørgsmål, når du flytter det, for du må som bekendt ikke have to ens spørgsmål !-)
Avatar billede mite Nybegynder
08. september 2004 - 12:28 #2
Jeg lukker og slukker spørgsmålet i kategorien ASP. Tak for det...det glemte jeg.

Har du forresten en løsning til mit store problem?
Avatar billede roenving Novice
08. september 2004 - 12:35 #3
-- jeg ville også lave en validering til sidst, men du kunne jo også nægte at modtage andet en tal som input, for ikke at komme for langt væk fra den konkrete indtastning:

<input onkeyup="this.value=(/^\d+$/.test(this.value))?this.value:this.value.replace(/\D/g,'');">
Avatar billede mite Nybegynder
08. september 2004 - 12:40 #4
Det er selvfølgelig også en måde at gøre det på. Der skal dog være mulighed for at indtaste negative tal samt at der ikke må være tomme inputfelter når der trykkes på "Opdater knappen". Alle felter skal være udfyldt for at man kan komme videre.
Avatar billede roenving Novice
08. september 2004 - 12:57 #5
Lav det med en validering, når der trykkes submit, det er klart det rareste for brugeren, at det sker ved overførsel, så man ikke lige fanges af et felt eller helt tilfældigt kommer til at trykke, og så bliver alertet ...

De negative tal er ret nemt, mens det bliver en anelse mere tricky, hvis også decimal-tal er tilladt !-)

<input onkeyup="this.value=(/^-?\d+$/.test(this.value))?this.value:this.value.replace(/^(-?\d*)\D?$/,'$1');">
Avatar billede mite Nybegynder
08. september 2004 - 13:17 #6
Nu virker det med positive og negative tal.

Når jeg skal teste på om et intputfelt er tomt hvordan skal jeg gøre dette, fordi alle pointfelter har ikke samme navn og så vil der jo være en problem. Hvert fejl har et navn der starter med "spid" hvor der så kommer et nr. på som spilleren har. Nr. er bare en autonum fra databasen.
Avatar billede mite Nybegynder
12. september 2004 - 10:24 #7
Så har jeg fået den til at virke...løsningen blev således:

function checkValidering()
{
a = document.forms[0]
s = 'Der er fejl i følgende felt(er):\n\n';
e = 0

for(i=0;i<a.length;i++)
  {
  if (a[i].name.indexOf("spid")>-1 && a[i].value.length<1)
      {
      e = e + 1
      s += 'spid'+(i+1)+'\n';
      }
    {
    if (e>0)
      {
      alert('Der er tomme felter...for at du kan opdatere point skal alle felter udfyldes. Vent til spillerunden er færdigspillet.');
      a[i].focus();
      return false;
      }
    }
  }
  return true;
}

Jeg har dog pt. bestemt at den ikke skal vise hvilke felter der ikke er skrevet point i.
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