2009-10-30, 12:27
#1
Jag läser till systemvetare på distans och just nu håller vi på med Javascript. Lärarna har förklarat att de pga en planeringsmiss på institutionen inte har tid med föreläsningar och knappt med handledning. Dåligt med tanke på att det är en universitetsutbildning, men så är det. Jag har hittills klarat mig på diverse tutorials på nätet.
Nu till mitt problem: Uppgiften går ut på att göra ett formulär för att registrera medlemskap. Varje inmatning i textboxarna ska valideras när användaren trycker på Lägg till-knappen. Om någon textbox är fel ifylld ska ett felmeddelande visas (efter labeln ovanför aktuell textbox tänkte jag mig). Om allt är rätt ifyllt vill jag att en messagebox ska visas som berättar för användaren att medlemskapet har registrerats. Det kvittar var informationen hamnar när man tryckt på Lägg till, det är inte det uppgiften går ut på.Det här är säkert busenkelt när man vet hur man gör men jag har kört fast och fattar inte vad jag gör fel.
Jag antar att jag behöver skriva något mer för att felmeddelandena ska visas, samt något mer för att få onSubmit att funka. Sen har jag säkert missat något ytterligare *trött*
Mycket tacksam om någon vill hjälpa mig!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="sv" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Registrera medlemskap</title>
<style type="text/css">
.style1 {
margin-bottom: 0px;
}
</style>
</head>
<SCRIPT language="JavaScript">
<!--
function validateForm() /*validering att alla fält är ifyllda*/
{
if (document.f.firstName.value=="")
{
alert("Du måste fylla i ett förnamn.");
return false;
}
else if (form.firstName.value.length>20)
{
alert("Förnamnet får bestå av max 20 tecken.");
return false;
}
else if (document.f.lastName.value=="")
{
alert("Du måste fylla i ett efternamn.");
return false;
}
else if (form.lastName.value.length>20)
{
alert("Efternamnet får bestå av max 20 tecken.");
return false;
}
else if (document.f.age.value=="")
{
alert("Du måste fylla i en ålder.");
return false;
}
else if (document.f.age.value < 18 || document.f.age.value > 45 ) /*validering av inmatad ålder*/
{
alert("Du måste inneha en ålder mellan 18-45 år.");
return false;
}
else if (document.f.userName.value=="")
{
alert("Du måste fylla i ett användarnamn.");
return false;
}
else if (form.userName.value.length>10)
{
alert("Användarnamnet får bestå av max 10 tecken.");
return false;
}
else if (document.f.password.value=="")
{
alert("Du måste fylla i ett lösenord.");
return false;
}
else (document.myForm.password.value.length<=6 >=10) /*validering av antal tecken i lösenordet --- FUNKAR DETTA!? --- */
{
alert("Lösenordet måste vara 6-10 tecken.");
return false;
}
else if (document.f.validatePassword.value=="")
{
alert("Du måste bekräfta ditt lösenord.");
return false;
}
else if (document.f.validatePassword.value==password) /*validering av lösenordsbekräftelse --- FUNKAR DETTA!? --- */
{
alert("Du måste upprepa lösenordet exakt likadant.");
return false;
}
else if (document.f.email.value=="")
{
alert("Du måste fylla i din e-mail.");
return false;
}
else if (!document.f.email.value.isValidEmail())
{
alert("Du måste fylla i en korrekt E-mail adress.");
return false;
}
else
{
function MsgBox (textstring)
{
alert("Ditt medlemskap har registrerats.");
return true;
}
else return true;
}
String.prototype.isValidEmail = function() /*validering att det är en e-mailadress som fyllts i*/
{
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
//-->
</SCRIPT>
<body>
<div id="layer1" style="position: absolute; width: 786px; height: 640px; z-index: 1; left: 10px; top: 7px">
<div id="layer2" class="style1" style="position: absolute; width: 375px; height: 40px; z-index: 1; left: 3px; top: 1px">
<h1><label id="Label1">Registrera medlemskap</label></h1>
</div>
<div id="layer3" style="position: absolute; width: 426px; height: 17px; z-index: 2; left: 5px; top: 51px">
<h4><label id="Label2">Förnamn (max 20 tkn)</label></h4>
</div>
<div id="layer4" style="position: absolute; width: 342px; height: 32px; z-index: 3; left: 3px; top: 92px">
<form method="post" name="firstName">
<input name="firstName" style="width: 229px" type="text" /></form>
</div>
<div id="layer5" style="position: absolute; width: 422px; height: 19px; z-index: 4; left: 4px; top: 123px">
<h4><label id="Label3">Efternamn (max 20 tkn)</label></h4>
</div>
<div id="layer6" style="position: absolute; width: 341px; height: 32px; z-index: 5; left: 2px; top: 165px">
<form method="post" name="lastName">
<input name="lastName" style="width: 228px" type="text" /></form>
</div>
<div id="layer7" style="position: absolute; width: 426px; height: 19px; z-index: 6; left: 5px; top: 198px">
<h4><label id="Label4"> Ålder (18-45 år)</label></h4>
</div>
<div id="layer8" style="position: absolute; width: 355px; height: 30px; z-index: 7; left: 3px; top: 246px">
<form method="post" name="age">
<input name="age" type="text" /></form>
</div>
<div id="layer9" style="position: absolute; width: 443px; height: 19px; z-index: 8; left: 4px; top: 275px">
<h4><label id="Label5">Användarnamn (max 10 tkn)</label></h4>
</div>
<div id="layer10" style="position: absolute; width: 339px; height: 26px; z-index: 9; left: -1px; top: 316px">
<form method="post" name="userName">
<input name="userName" style="width: 222px" type="text" /></form>
</div>
<div id="layer11" style="position: absolute; width: 443px; height: 16px; z-index: 10; left: 2px; top: 346px; right: 341px">
<h4><label id="Label6">Lösenord (6-10 tkn)</label></h4>
</div>
<div id="layer12" style="position: absolute; width: 342px; height: 27px; z-index: 11; left: 3px; top: 386px">
<form method="post" name="password">
<input name="password" style="width: 203px" type="text" /></form>
</div>
<div id="layer13" style="position: absolute; width: 443px; height: 15px; z-index: 12; left: 3px; top: 437px">
<h4><label id="Label7">Bekräfta lösenord</label></h4>
</div>
<div id="layer14" style="position: absolute; width: 352px; height: 27px; z-index: 13; left: 5px; top: 479px">
<form method="post" name="validatePassword">
<input name="validatePassword" style="width: 201px" type="text" /></form>
</div>
<div id="layer15" style="position: absolute; width: 441px; height: 17px; z-index: 14; left: 5px; top: 506px">
<h4><label id="Label8">E-postadress</label></h4>
</div>
<div id="layer16" style="position: absolute; width: 349px; height: 26px; z-index: 15; left: 3px; top: 549px">
<form method="post" name="email">
<input name="email" style="width: 237px" type="text" /></form>
</div>
<div id="layer17" style="position: absolute; width: 132px; height: 47px; z-index: 16; left: 3px; top: 581px">
<form method="post" name="buttonAdd">
<input name="buttonAdd" style="width: 85px" type="submit" value="Lägg till" onSubmit="return validateForm(this)" "return functionMsgbox(this)" /></form>
</div>
</div>
</body>
</html>
Nu till mitt problem: Uppgiften går ut på att göra ett formulär för att registrera medlemskap. Varje inmatning i textboxarna ska valideras när användaren trycker på Lägg till-knappen. Om någon textbox är fel ifylld ska ett felmeddelande visas (efter labeln ovanför aktuell textbox tänkte jag mig). Om allt är rätt ifyllt vill jag att en messagebox ska visas som berättar för användaren att medlemskapet har registrerats. Det kvittar var informationen hamnar när man tryckt på Lägg till, det är inte det uppgiften går ut på.Det här är säkert busenkelt när man vet hur man gör men jag har kört fast och fattar inte vad jag gör fel.
Jag antar att jag behöver skriva något mer för att felmeddelandena ska visas, samt något mer för att få onSubmit att funka. Sen har jag säkert missat något ytterligare *trött*
Mycket tacksam om någon vill hjälpa mig!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="sv" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Registrera medlemskap</title>
<style type="text/css">
.style1 {
margin-bottom: 0px;
}
</style>
</head>
<SCRIPT language="JavaScript">
<!--
function validateForm() /*validering att alla fält är ifyllda*/
{
if (document.f.firstName.value=="")
{
alert("Du måste fylla i ett förnamn.");
return false;
}
else if (form.firstName.value.length>20)
{
alert("Förnamnet får bestå av max 20 tecken.");
return false;
}
else if (document.f.lastName.value=="")
{
alert("Du måste fylla i ett efternamn.");
return false;
}
else if (form.lastName.value.length>20)
{
alert("Efternamnet får bestå av max 20 tecken.");
return false;
}
else if (document.f.age.value=="")
{
alert("Du måste fylla i en ålder.");
return false;
}
else if (document.f.age.value < 18 || document.f.age.value > 45 ) /*validering av inmatad ålder*/
{
alert("Du måste inneha en ålder mellan 18-45 år.");
return false;
}
else if (document.f.userName.value=="")
{
alert("Du måste fylla i ett användarnamn.");
return false;
}
else if (form.userName.value.length>10)
{
alert("Användarnamnet får bestå av max 10 tecken.");
return false;
}
else if (document.f.password.value=="")
{
alert("Du måste fylla i ett lösenord.");
return false;
}
else (document.myForm.password.value.length<=6 >=10) /*validering av antal tecken i lösenordet --- FUNKAR DETTA!? --- */
{
alert("Lösenordet måste vara 6-10 tecken.");
return false;
}
else if (document.f.validatePassword.value=="")
{
alert("Du måste bekräfta ditt lösenord.");
return false;
}
else if (document.f.validatePassword.value==password) /*validering av lösenordsbekräftelse --- FUNKAR DETTA!? --- */
{
alert("Du måste upprepa lösenordet exakt likadant.");
return false;
}
else if (document.f.email.value=="")
{
alert("Du måste fylla i din e-mail.");
return false;
}
else if (!document.f.email.value.isValidEmail())
{
alert("Du måste fylla i en korrekt E-mail adress.");
return false;
}
else
{
function MsgBox (textstring)
{
alert("Ditt medlemskap har registrerats.");
return true;
}
else return true;
}
String.prototype.isValidEmail = function() /*validering att det är en e-mailadress som fyllts i*/
{
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
//-->
</SCRIPT>
<body>
<div id="layer1" style="position: absolute; width: 786px; height: 640px; z-index: 1; left: 10px; top: 7px">
<div id="layer2" class="style1" style="position: absolute; width: 375px; height: 40px; z-index: 1; left: 3px; top: 1px">
<h1><label id="Label1">Registrera medlemskap</label></h1>
</div>
<div id="layer3" style="position: absolute; width: 426px; height: 17px; z-index: 2; left: 5px; top: 51px">
<h4><label id="Label2">Förnamn (max 20 tkn)</label></h4>
</div>
<div id="layer4" style="position: absolute; width: 342px; height: 32px; z-index: 3; left: 3px; top: 92px">
<form method="post" name="firstName">
<input name="firstName" style="width: 229px" type="text" /></form>
</div>
<div id="layer5" style="position: absolute; width: 422px; height: 19px; z-index: 4; left: 4px; top: 123px">
<h4><label id="Label3">Efternamn (max 20 tkn)</label></h4>
</div>
<div id="layer6" style="position: absolute; width: 341px; height: 32px; z-index: 5; left: 2px; top: 165px">
<form method="post" name="lastName">
<input name="lastName" style="width: 228px" type="text" /></form>
</div>
<div id="layer7" style="position: absolute; width: 426px; height: 19px; z-index: 6; left: 5px; top: 198px">
<h4><label id="Label4"> Ålder (18-45 år)</label></h4>
</div>
<div id="layer8" style="position: absolute; width: 355px; height: 30px; z-index: 7; left: 3px; top: 246px">
<form method="post" name="age">
<input name="age" type="text" /></form>
</div>
<div id="layer9" style="position: absolute; width: 443px; height: 19px; z-index: 8; left: 4px; top: 275px">
<h4><label id="Label5">Användarnamn (max 10 tkn)</label></h4>
</div>
<div id="layer10" style="position: absolute; width: 339px; height: 26px; z-index: 9; left: -1px; top: 316px">
<form method="post" name="userName">
<input name="userName" style="width: 222px" type="text" /></form>
</div>
<div id="layer11" style="position: absolute; width: 443px; height: 16px; z-index: 10; left: 2px; top: 346px; right: 341px">
<h4><label id="Label6">Lösenord (6-10 tkn)</label></h4>
</div>
<div id="layer12" style="position: absolute; width: 342px; height: 27px; z-index: 11; left: 3px; top: 386px">
<form method="post" name="password">
<input name="password" style="width: 203px" type="text" /></form>
</div>
<div id="layer13" style="position: absolute; width: 443px; height: 15px; z-index: 12; left: 3px; top: 437px">
<h4><label id="Label7">Bekräfta lösenord</label></h4>
</div>
<div id="layer14" style="position: absolute; width: 352px; height: 27px; z-index: 13; left: 5px; top: 479px">
<form method="post" name="validatePassword">
<input name="validatePassword" style="width: 201px" type="text" /></form>
</div>
<div id="layer15" style="position: absolute; width: 441px; height: 17px; z-index: 14; left: 5px; top: 506px">
<h4><label id="Label8">E-postadress</label></h4>
</div>
<div id="layer16" style="position: absolute; width: 349px; height: 26px; z-index: 15; left: 3px; top: 549px">
<form method="post" name="email">
<input name="email" style="width: 237px" type="text" /></form>
</div>
<div id="layer17" style="position: absolute; width: 132px; height: 47px; z-index: 16; left: 3px; top: 581px">
<form method="post" name="buttonAdd">
<input name="buttonAdd" style="width: 85px" type="submit" value="Lägg till" onSubmit="return validateForm(this)" "return functionMsgbox(this)" /></form>
</div>
</div>
</body>
</html>