Avatar billede gorlist Nybegynder
10. september 2002 - 09:19 Der er 2 kommentarer og
2 løsninger

Valider indtastning øjeblikkeligt.

Jeg har følgende funktion:

function validate() {
    if ( ! document.forms[0].Score.value.match( /^\d+(\d+|)?$/ ) ) {
        alert("Skriv et heltal")
        return false;
    }
}

Funktionen fungerer fint, men jeg vil gerne at der kun reageres hvis der bliver indtastet noget i feltet. Hvis feltet forbliver tomt, skal funktionen ikke give alert. Ej heller skal funktionen give alert ved mellemrum alene.

Nogen der har et smart regexp der kan klare det?
Avatar billede jakoba Nybegynder
10. september 2002 - 10:17 #1
function validate() {
    if (  document.forms[0].Score.value.length > 0
      && ! document.forms[0].Score.value.match( /^\d+(\d+|)?$/ )
      ) {
        alert("Skriv et heltal")
        return false;
    }
    return true;  // bør skrives selvom IE overlever uden.
}

mch JakobA
Avatar billede jakoba Nybegynder
10. september 2002 - 10:19 #2
Ps: din regular expression er mere kompliceret end den behøver:
        /^\d+$/
tester det samme.
Avatar billede Slettet bruger
10. september 2002 - 15:15 #3
For lige at udvide scriptet med, at man gerne må taste white-space tegn (mellemrum, linjeskift, tab, osv.):

function validate() {
    if (  document.forms[0].Score.value.length > 0
      && !document.forms[0].Score.value.match(/^\s+$/)
      && !document.forms[0].Score.value.match(/^\d+$/)
      ) {
        alert("Skriv et heltal")
        return false;
    }
    return true;
}
Avatar billede Slettet bruger
10. september 2002 - 15:16 #4
... hvis der vel at mærke kun er white-space tegn i value'en.
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