Avatar billede miss-g Seniormester
15. maj 2004 - 16:00 Der er 19 kommentarer og
1 løsning

Validering af flere felter med alert

Endnu én: http://www.nicolin.dk/slettes/flerefelter.htm

har forsøgt med lidt kode - men der er ikke noget der virker.

Alle felter skal være udfyldt før man kan submitte.
Den skal tjekke at det er en gyldig e-mail adresse.
Medlemsnummer på kun indeholder et nummer.

Nogen som kan hjælpe mig med at få den rettet?
Avatar billede miss-g Seniormester
15. maj 2004 - 16:08 #1
Det skal være på samme måde som alert her: http://www.nicolin.dk/slettes/logind.htm
Avatar billede grunken Nybegynder
15. maj 2004 - 17:55 #2
man kunne efter min mening tilpasse funktionen lidt bedre :o)

-Men dette er jo igen en smagssag :o)

prøv for testens skyld at skifte din funktion "submitLoginForm()" ud med denne :o)

function submitLoginForm(){
var r = [],err=0,str = "der opstod fejl\n\n";
r['member']=/^\d+$/;
r['password']=r['nickname']=/^\w+$/;
r['email'] = /^[1-9a-z\.\_\-]{1,}\@[1-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;

e = document.forms.logon.elements

for(i=0;i<e.length;i++){
  if(r[e[i].name] && !r[e[i].name].test(e[i].value)){
  f = (e[i].value.length>0)?"er ugyldigt indtastet\n":"Skal indtastes\n"
  str += "-"+e[i].name+"- "+f;
  err++
  }
}
if(err>0){alert(str);return false}else return true;
}
Avatar billede roenving Novice
15. maj 2004 - 20:18 #3
Hvorfor må der ikke være nuller i email-adresser ?-)

0g {1,} kan også skrives + i email-funktionen !-)

-- men ellers en ret sexy funktion ...
Avatar billede miss-g Seniormester
15. maj 2004 - 21:03 #4
Hæ hæ - nuværende er lavet fra folk her i eksperten. Har haft en del formularer jeg skulle have hjælpe til.

Mangler bare koden til denne - så den virker. Men kan godt se at det er noget møg at der ikke må være 0 i en e-mail adresse...hm.

Jeg har intet forstand på det, så jeg tager folks ord for gode varer *G*

Nogen der vil komme med den komplete kode til formularen i dette spørgsmål?
Avatar billede miss-g Seniormester
15. maj 2004 - 21:45 #5
Er det for lidt point eller hvad?
Avatar billede grunken Nybegynder
15. maj 2004 - 22:20 #6
den virker nu fint den her :o), du skal bare skifte din nuværende funktion ud :o)

function submitLoginForm(){
var r = [],err=0,str = "der opstod fejl\n\n";
r['member']=/^\d+$/;
r['password']=r['nickname']=/^\w+$/;
r['email'] = /^[0-9a-z\.\_\-]+\@[0-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;

e = document.forms.logon.elements

for(i=0;i<e.length;i++){
  if(r[e[i].name] && !r[e[i].name].test(e[i].value)){
  f = (e[i].value.length>0)?"er ugyldigt indtastet\n":"Skal indtastes\n"
  str += "-"+e[i].name+"- "+f;
  err++
  }
}
if(err>0){alert(str);return false}else return true;
}

-og lige ændret på roenvings foranledning :o)
Avatar billede grunken Nybegynder
15. maj 2004 - 22:20 #7
points er da lige meget :o)
Avatar billede roenving Novice
15. maj 2004 - 22:29 #8
.museum er åbenbart også fritaget for email-adresser ?-)

r['email'] = /^[\w\.\-]+\@[\w\.\-]+\.[a-z]{2,6}$/i;

-- og så dækker \w (word-characters præcis a-z, 0-9 og _ så den tog jeg lige med for at forenkle !-)

-- men for at dække den mere præcist, har jeg lave følgende monster (her tilpasset situationen !-)

  var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ";
  r['email'] = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i");

-- den eneste alvorlige type fejl den tillader, er at @-tegn kan have et punktum eller en bindestreg lige foran, ligeledes med top-domæne punktummet ...
Avatar billede miss-g Seniormester
15. maj 2004 - 22:37 #9
Ok - men hvis jeg lige må nævne det igen... i smider stumper at koder hist og her - jeg er virkelig på glat is her *G* Aner ikke hvor jeg skal sætte hvad ind, og hvad der skal ændres.

Er glad for at du retter de dumme fejl roenving *S*

Men kan jeg ikke nok få et helt stykke kode med javascript og html og det hele.

Hvis i starter med at åbne min kode, rette den og smække hele koden ud til mig igen.
Avatar billede roenving Novice
15. maj 2004 - 22:55 #10
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>validering</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/JavaScript">
function submitLoginForm(){
var r = [],err=0,str = "Der opstod fejl:\n\n";
r['member']=/^\d+$/;
r['password']=r['nickname']=/^\w+$/;
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ";
r['email'] = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i");

e = document.forms.logon.elements

for(i=0;i<e.length;i++){
  if(r[e[i].name] && !r[e[i].name].test(e[i].value)){
  f = (e[i].value.length>0)?"er ugyldigt indtastet\n":"Skal indtastes\n"
  str += "-"+e[i].name+"- "+f;
  err++
  }
}
if(err>0){alert(str);return false}else return true;
}

</script>
</head>


<body>
<table width="700" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form action="" method="post" name="logon" onSubmit="return submitLoginForm()">
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="20%" height="20" class="boldblack"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Medlemsnummer:</font></td>
            <td width="80%" class="boldblack"><input name="member" type="text" id="memberno2" style="font-size: x-small; width: 110px;">
              <span class="linkscat"> </span></td>
          </tr>
          <tr>
            <td class="boldblack"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&Oslash;nsket
              brugernavn: </font></td>
            <td class="linkscat"> <input name="nickname" type="text" id="nickname" style="font-size: x-small; width: 110px;">
            </td>
          </tr>
          <tr>
            <td height="20" class="boldblack"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adgangskode:
              </font></td>
            <td height="20" class="linkscat"><input name="password" type="password" class="linkscat" id="password2" style="font-size: x-small; width: 110px;">
            </td>
          </tr>
          <tr>
            <td height="20" class="boldblack"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-mail
              adresse: </font></td>
            <td height="20" class="linkscat"><input name="email" type="text" class="linkscat" id="email" style="font-size: x-small; width: 110px;">
            </td>
          </tr>
          <tr>
            <td height="20" class="boldblack">&nbsp;</td>
            <td height="20" class="linkscat">&nbsp;</td>
          </tr>
          <tr>
            <td height="20" class="boldblack">&nbsp;</td>
            <td height="20" class="linkscat"><input type="submit" name="Submit" value="Gem"></td>
          </tr>
        </table>
      </form></td>
  </tr>
</table>
</body>
</html>
Avatar billede miss-g Seniormester
15. maj 2004 - 22:59 #11
Aj - den er der næsten, men sådan kunne jeg også have lavet den med behaviors i Dreamweaver....hm.

Synes ikke kodningen er identisk med de tidligere koder jeg har kørt med, og det vil jeg gerne have. Der kan man nemlig bedre bestemme, hvad der skal stå i alertboksen.
Avatar billede roenving Novice
15. maj 2004 - 23:16 #12
Den kan sagtens ændres til noget anderledes, f.eks.

<script type="text/JavaScript">
function submitLoginForm(){
var r = [],s = [],err=0,str = "Der opstod fejl:\n\n";
r['member']=/^\d+$/;
s['member'] = ['Medlemsnummer','skal bestå af tal','kan ikke undværes'];
r['password']=r['nickname']=/^\w+$/;
s['nickname'] = ['Ønsket brugernavn','skal bestå af bogstaver eller tal','skal udfyldes'];
s['password'] = ['Adgangskode','kan kun bestå af tal eller bogstaver','skal indtastes'];
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ";
r['email'] = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i");
s['email'] = ['E-mail adresse','skal have et gyldigt format','skal angives'];

e = document.forms.logon.elements

for(i=0;i<e.length;i++){
  if(r[e[i].name] && !r[e[i].name].test(e[i].value)){
  f = (e[i].value.length>0)?s[e[i].name][1]:s[e[i].name][2];
  str += "\t"+s[e[i].name][0]+" - " + f + "\n";
  err++
  }
}
if(err>0){alert(str);return false}else return true;
}

</script>
Avatar billede miss-g Seniormester
15. maj 2004 - 23:23 #13
Nu står teksten helt til højre i alertboksen?

Kan det ikke bare laves i samme kodning som denne:
http://www.nicolin.dk/slettes/logind.htm

De skal jo helst også være ens på alle sider på sitet *S*
Avatar billede miss-g Seniormester
16. maj 2004 - 00:54 #14
Giver I allerede op? *G*
Avatar billede roenving Novice
16. maj 2004 - 00:57 #15
Nej, men Nicks script er jo genialt, så det vil være smartere at implementere det på de andre sider også !-)
Avatar billede miss-g Seniormester
16. maj 2004 - 01:03 #16
Piv - troede lige jeg var ved at være færdig *G*

Og hvem er Nick? hæ hæ - er det grunken?

Hvis jeg sætter grunken ind - så er det lidt ala din kode. Den nævner textfeltets navn, og sætter noget ekstra tekst på, som man kan ændre.

Den løsning vil jeg ikke have - som jeg skrev tidligere. Kan bedre lide den anden metode, som er brugt på alle de andre validerede forme.

Men hvis I absolut ikke vil det - så må jeg overtale programmøren, for jeg kan ikke finde ud af det.

Lukker i morgen, hvis ingen melder sig med det jeg efterspørger...suk.

??
Avatar billede miss-g Seniormester
16. maj 2004 - 01:05 #17
Troede det var forholdsvis nemt - at man kunne mixe de tidligere koder - sætte dem sammen til én - men det virker jo ikke.
Avatar billede roenving Novice
16. maj 2004 - 01:13 #18
Du kan da bare gentage denne kode og så ændre feltnavne og tekster !-)

    if (!document.logon.member.value.match(/^\d+$/)) {
        alert("Medlemsnummer skal udfyldes");
        document.logon.member.value = '';
        document.logon.member.focus();
        return false;
    }

I den nævnte er logon navn på formen, og member er navn på felt, og den skal så gentages for hvert af de felter, du skal teste:

    if (!document.logon.password.value.match(/^\w+$/)) {
        alert("Password skal udfyldes");
        document.logon.password.value = '';
        document.logon.password.focus();
        return false;
    }

-- de relevante regExps kan du jo finde i grunkens og mine indlæg !o]
Avatar billede grunken Nybegynder
16. maj 2004 - 02:18 #19
miss-g > Det var nu ikke for at forvirre dig alt for meget :o), jeg prøvede bare med en løsning der kunne inplanteres på alle dine sider :o)

-Og klart roenvings sidste version du skal bruge :o)

Og når man så ser den kære Jes's regExp'r, ja så bliver jeg bare mindet om hvor rusten jeg er på den front - avs :o)
Avatar billede miss-g Seniormester
16. maj 2004 - 10:49 #20
Jeg fatter ikke noget - og har ikke forstand på at gå ind og rette i koden (andet end hvad den skal sige, når der er "fejl").

Lukker nu - kommer ingen vegne.
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