February 4, 2003
Hej.
Gör validering för fält nu. Allting har gått bra, utom ett problem som jag stött på.
När man anger telefonnummer vill jag bara sifforna 0-9 och - och + tecen ska godkännas.
ex. "04332-283183" ska godkänas
och "+440324084293842938" ska också godkänas.
Men så fort något annat än 0-9 och - eller plus finns med så ska det skrivas en sak till en variablel (felMsg="Ange giltigt tele-nr";)
Antar man ska göra någon slags FOR lop som går igenom varje tecken i under formuläret med namnet order.
Men hur exakt gör man? En färdig kod vore ytterst tacksamt!
Mvh/D
December 26, 2003
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="sv">
<head>
<title>Validera formulär</title>
<script type="text/javascript">
function validate(o) {
if (!parseInt(o.tel.value)) {
alert("foo");
return false;
} else {
return true;
}
}
</script>
</head>
<body>
<form action="" onsubmit="return validate(this)">
<label>Telefonnummer: <input name="tel"></label></p>
</form>
</body>
</html>
HTH 🙂
Nu tillåter det här skriptet även "*" och "/", men det kanske inte gör så mycket?
February 4, 2003
Tusen tack. Hade redan när du postade detta funnit en lösning. Kan ju posta den för andras ev. användande vid samma problem.
if (document.kontakt.kontakt_satt_select.value == "telefon"){ // kontroll om det är telefon man valt
var checkStr = document.kontakt.kontaktinfo.value;
var checkOK = "0123456789-+"; // tillåtna värden i tele-fält
var allaOK = true; //nollställer fel
for (i = 0; i < checkStr.length; i++){ // går igenom tecken i fältet
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++) // jämför mot OK-sträng
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length){
allaOK = false;
break;
}
}
if (!allaOK || document.kontakt.kontaktinfo.value.length < 5 || document.kontakt.kontaktinfo.value.length > 15){ // vid fel eller fel antal tecken
fel++;
fel_desc=fel_desc+'* Ange ett giltigt telefonnummer på mellan 5 och 15 tecken.n';
}
} // slut på telefonkontroll
1 Guest(s)