Avatar billede jakobsen Nybegynder
17. marts 2008 - 21:20 Der er 10 kommentarer og
1 løsning

javascript check på input

hej

jeg ved at lave noget tilmeldingsystem til min klasse,
jeg vil gerne tjekke at

en input "tlf" = kun tal og max 8 cifre

en input "adr" = kun tal og bokstaver og max 25 cifre
(altså ikke +´= osv..)

kan man nemt det?

sådan et check på submit knappen inden den sender dataen
Avatar billede kalp Novice
17. marts 2008 - 21:48 #1
til første del..

<HTML>
  <HEAD>
  <SCRIPT language=Javascript>
     
      function isNumberKey(evt)
      {
        if(document.getElementById('txtChar').value.length > 7) return false;
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

        return true;
      }
     
  </SCRIPT>
  </HEAD>
  <BODY>
      <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">
  </BODY>
</HTML>
Avatar billede kalp Novice
17. marts 2008 - 22:18 #2
til nr. 2

<HTML>
  <HEAD>
  <SCRIPT language=Javascript>
     
  function isValid(event) {
    var element = document.getElementById('txtChar');
   
    if (element.value.length > 24) {
      return false;
    }
    if(event.keyCode == 45
        || event.keyCode == 44
        || event.keyCode == 8364
        || event.keyCode == 36
        || event.keyCode == 46
        || event.keyCode == 39
        || event.keyCode == 96
        || event.keyCode == 42
        || event.keyCode == 60
        || event.keyCode == 62
        || event.keyCode == 92
        || event.keyCode == 59
        || event.keyCode == 58
        || event.keyCode == 45
        || event.keyCode == 95
        || event.keyCode == 168
        || event.keyCode == 124
        || event.keyCode == 64
        || event.keyCode == 35
        || event.keyCode == 163
        || event.keyCode == 37
        || event.keyCode == 38
        || event.keyCode == 47
        || event.keyCode == 123
        || event.keyCode == 40
        || event.keyCode == 91
        || event.keyCode == 93
        || event.keyCode == 41
        || event.keyCode == 61
        || event.keyCode == 125
        || event.keyCode == 63
        || event.keyCode == 43
        || event.keyCode == 94
        || event.keyCode == 33
        || event.keyCode == 34
        || event.keyCode == 164
        || event.keyCode == 126) return false;
  return true;

     
  </SCRIPT>
  </HEAD>
  <BODY>
      <INPUT id="txtChar" onkeypress="return isValid(event);" type="text" name="txtChar">
  </BODY>
</HTML>



og ja det kan gøres nemmere med regexp.. men oh well. du skal bare copy paste.
Avatar billede roenving Novice
18. marts 2008 - 14:27 #3
Tjah, jeg ville da lave et helt traditionelt valideringsscript:

<script type="text/javascript">
function valider(f){
  if(f.navn.value==""){
    alert("Husk dit navn");
    f.navn.focus();
    return false;
  }
  if(!f.tlf.value.match(/^\d{8}$/)){
    alert("Husk dit telefonnummer - 8 cifre");
    f.tlf.focus();
    return false;
  }
  if(!f.adr.value.match(/^[a-zæøå\d ]{5,25}$/)){
    alert("Husk dit adresse - max 25 bogstaver og tal");
    f.adr.focus();
    return false;
  }
  if(!f.postby.value.match(/^\d{3,4} \w+$/)){//Godkender også færøske postnumre med 3 cifre
    alert("Husk dit postnr. og by - 4 cifre og bynavn");
    f.postby.focus();
    return false;
  }
  return true;
}
</script>

<form action="dinTilmelding.html" method="post" onsubmit="return valider(this);">
Navn: <input name="navn"><br>
Tlf.: <input name="tlf"><br>
Adresse: <input name="adr"></br>
Postnr. og -by: <input name="postby"><br>
<input type="submit" value="Send tilmelding">
</form>
Avatar billede jakobsen Nybegynder
24. marts 2008 - 09:26 #4
roenving: lige det jeg søger, men når jeg ligger det på min side
og klikker submit siger den godt nok fejlen men går videre til "dintilmeding.html" alligevel..
Avatar billede jakobsen Nybegynder
24. marts 2008 - 09:29 #5
ahh ik noget, havde glemt at rette noget kode.

kan man få den til kun at tjekke om der 12 cifre og ét "-" der  i ?

f.eks. 0045-xxxxxxxx istedet for 0045/xxxxxxxx
Avatar billede jakobsen Nybegynder
24. marts 2008 - 09:51 #6
if(!f.adr.value.match(/^[a-zæøå\d ]{5,25}$/)){
    alert("Husk dit adresse - max 25 bogstaver og tal");
    f.adr.focus();
    return false;
  }

hvordan får man til at der godt må være store og små bokstaver?
Avatar billede jakobsen Nybegynder
24. marts 2008 - 09:53 #7
if(!f.tlf.value.match(/^\d{8}$/)){
    alert("Husk dit telefonnummer - 8 cifre");
    f.tlf.focus();
    return false;
  }

hvordan får man den til at tjek at det ok OP TIL 8 cifre?
Avatar billede olebole Juniormester
24. marts 2008 - 23:03 #8
<ole>

if(!f.tlf.value.match(/^\d{0, 8}$/)){
    alert("Husk dit telefonnummer - 8 cifre");
    f.tlf.focus();
    return false;
}

- men så vil en tom streng jo også opfylde betingelsen, hvilket sikkert ikke dur. Du må nok elaborere lidt på: "... at det ok OP TIL 8 cifre"  ;o)

/mvh
</bole>
Avatar billede jakobsen Nybegynder
25. marts 2008 - 09:43 #9
betyder 0 at det ok mellem 0 og 8 ?
Avatar billede jakobsen Nybegynder
25. marts 2008 - 09:43 #10
hvordan får man det til at være ok med både små og store bokstaver?
Avatar billede roenving Novice
26. marts 2008 - 17:14 #11
Jepz !o]

\d{0,8} // 0-8 cifre
\d{8} // præcis 8 cifre
\d{8,} // mindst 8 cifre

-- at acceptere både store og små bogstaver gøre med i-moderatoren (case-Insensitive !-)

if(!f.adr.value.match(/^[a-zæøå\d ]{5,25}$/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