Hej,
nu är det så att jag behöver hjälp att förenkla den här funktionen på ett bra sätt, var längesen jag satt med javascript så har lite problem, så hjälp önskas! Det som behövs fixas är det som jag fetstilat.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Inlämningsuppgift 4</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
var firstName = new Array();
var lastName = new Array();
var pNumber = new Array();
var age = new Array();
var digits = new Array();
var registered = 0;
var men = 0;
var women = 0;
var oldest = 0;
function main()
{
if (contentInfo())
{
save();
threeNames();
ageCheck();
showInfo();
}
}
function showInfo()
{
ageComments();
var p1 = document.getElementById("p1");
p1.lastChild.nodeValue = "Antalet registrerade män: " + men;
var p2 = document.getElementById("p2");
p2.lastChild.nodeValue = "Antalet registrerade kvinnor: " + women;
var p5 = document.getElementById("p5");
p5.lastChild.nodeValue = firstName[oldest] + " " + lastName[oldest] + " du är " + age[oldest] + " år och äldst bland de registrerade.";
}
function ageComments()
{
var temp = firstName[registered-1] + ", du är " + age[registered-1] + " år gammal. ";
if (age[registered-1] == 17)
{
temp = temp + "Du är snart vuxen!"
}
else if (age[registered-1] > 10 && age[registered-1] < 13)
{
temp = temp + "Du är snart tonåring!";
}
else if (age[registered-1] >= 65)
{
temp = temp + "Du är pensionär!";
}
else {
temp = temp;
}
var h1 = document.getElementById("h1");
h1.lastChild.nodeValue = temp;
}
function verifyId()
{
var pNumber = "";
pNumber = document.getElementById('pNumber');
pNumber = pNumber.value;
if (dateCheck(pNumber) == true)
{
if (sexCheck(pNumber) == true)
{
if (pCheck(pNumber) == true)
{
return true;
}
}
}
}
[B]function threeNames()
{
var temp = "";
for (var i = 1; i < 4; i++)
{
if ((registered-i) == 0 || i == 3 && (registered-i) >= 0)
{
temp = temp + lastName[registered-i];
}
else if ((registered-i) > 0) {
temp = temp + lastName[registered-i] + ", ";
}
else
{
break;
}
}
var tempP = document.getElementById('p4');
tempP.lastChild.nodeValue = temp;
}[/B]
function pCheck(pNumber)
{
var number = pNumber;
var code = "";
for (var i = 7; i <=10; i++)
{
code = code + pNumber.charAt(i);
}
if (!(isNaN(code))) {
if ((code.charAt(2) % 2) == 1)
{
men++;
}
else
{
women++;
}
return true;
}
else
{
alert("De sista fyra tecknen i personnummert är felskrivna.");
return false;
}
}
function dateCheck(pNumber)
{
var date = "";
var number = pNumber;
for (var i = 0; i <=5; i++)
{
date = date + pNumber.charAt(i);
}
if (!(isNaN(date)))
{
return true;
}
else {
alert("De första fyra siffrorna i personnummert är inte korrekta.");
return false;
}
}
function sexCheck(pNumber)
{
var number = pNumber;
var sign = pNumber.charAt(6);
if (sign == "-" || sign == "+")
{
return true;
}
else
{
alert("Det 7:e tecknet i personnummert måste vara ett + eller -.");
return false;
}
}
function ageCheck()
{
var temp = 0;
temp = defineAge(temp);
temp = parseInt(temp);
var sign = (pNumber[registered-1].charAt(6));
if (sign == "-")
{
underHundered(temp);
}
else
{
overHundered(temp);
}
}
function defineAge(temp)
{
if (pNumber[registered-1].charAt(0) != 0)
{
temp = (pNumber[registered-1].charAt(0) + pNumber[registered-1].charAt(1));
}
else
{
temp = pNumber[registered-1].charAt(1);
}
return temp;
}
function underHundered(temp)
{
var tTemp = temp;
if (tTemp <= 9)
{
age[registered-1] = 9 - tTemp;
}
else
{
age[registered-1] = ((100-tTemp) + 9);
}
if (age[registered-1] >= age[oldest])
{
oldest = registered-1
}
}
function overHundered(temp)
{
var tTemp = temp;
if (tTemp <= 9)
{
age[registered-1] = 100 + 9 - tTemp;
}
else
{
age[registered-1] = ((200-tTemp) + 9);
}
if (age[registered-1] >= age[oldest])
{
oldest = registered-1
}
}
function contentInfo()
{
var temp = document.getElementById('firstName');
var temp2 = document.getElementById('lastName');
if ((isNaN(temp.value)) && (isNaN(temp2.value)))
{
var temp3 = document.getElementById('pNumber');
if (temp3.value.length == 11)
{
if (verifyId())
{
return true;
}
}
else
{
alert("Du har skrivit fel i personnummert!");
return false;
}
}
else
{
alert("Förnamnet och/eller efternamnet är inte korrekt!");
return false;
}
}
function save()
{
firstName[registered] = document.getElementById('firstName');
firstName[registered] = firstName[registered].value;
lastName[registered] = document.getElementById('lastName');
lastName[registered] = lastName[registered].value;
pNumber[registered] = document.getElementById('pNumber');
pNumber[registered] = pNumber[registered].value;
registered++;
var h1 = document.getElementById("h1");
h1.lastChild.nodeValue = firstName[registered-1] + ", du är (id) år gammal";
}
</script>
</head>
<body>
<h1>Registrering</h1>
<form action="#" method="post">
<fieldset>
<legend>Personuppgifter</legend>
<label for="firstName">Förnamn:</label>
<input type="text" id="firstName"><br>
<label for="lastName">Efternamn:</label>
<input type="text" id="lastName"><br>
<label for="pNumber">Personnummer:</label>
<input type="text" id="pNumber"><br>
<input type="button" id="sendButton" value="Spara" onclick="main();">
</fieldset>
</form>
<h1 id="h1">...</h1>
<p id="p1">Antal registrerade män: 0</p>
<p id="p2">Antal registrerade kvinnor: 0</p>
<p id="p3">De tre senaste registrerade heter i efternamn: </p>
<p id="p4">Ingen registrerad</p>
<p id="p5">Det finns ingen registrerad.</p>
</body>
</html>