Varför fungerar inte min javascript ?

Permalänk

Varför fungerar inte min javascript ?

Hejsan !

Har ett webformulär som skall säga till då med hjälp av javascript att textfälten inte är ifyllda om man missar något samt at man skall kryssa i om man läst reglerna men det fungerar inte hos mig och jag hittar inte felet.

Min sida ser ut som följande:

[code]

<html>
<head>
<title>Bli medlem</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="JavaScript">
function checkForm(form) {
if ((form.namn.value.length==0)||(form.efternamn.value.length==0))||(form.email.value.length==0))||(form.anvandarnamn.value.length==0))||(form.losenord.value.length==0))||(form.losenord2.value.length==0)){
alert("Du har glömt att fylla i någon av textfälten!");
return false;
}
else {
if (!form.ruta.checked) {
alert("Du måste acceptera reglerna!");
return false;
}
else
return true;
}
}
</script>
<link href="force2.css" rel="stylesheet" type="text/css">
</head>

<body class="body" TOPMARGIN=0 LEFTMARGIN=0 MARGINHEIGHT=0 MARGINWIDTH=0">
<table width="800" border="0">
<tr>
<td width="18" height="284" valign="top"><div align="center"><img src="bilder/logo.jpg" width="100" height="100"></div></td>
<td width="772" valign="top"><div align="center">
<p><img src="bilder/force.gif" width="633" height="80"></p>
<p>*Bli medlem*</p>
<form name="form1" method="post" action="mailen skall skickas från server." onSubmit="return checkForm(this)">
<div align="left">
<table width="688" border="0">
<tr>
<td width="295" height="327">
<p>Namn:<br>
<input name="namn" type="text" id="Namn">
<br>
Efternamn:<br>
<input name="efternamn" type="text" id="Efternamn">
<br>
E-mail:<br>
<input name="email" type="text" id="Email">
<br>
Användarnamn:<br>
<input name="anvandarnamn" type="text" id="Anvandarnamn">
<br>
Lösenord:<br>
<input name="losenord" type="password" id="Lösenord">
<br>
Bekräfta lösenord:<br>
<input name="losenord2" type="password" id="Lösenord igen">
<br>
Har du läst igenom reglerna?<br>
<input name="ruta " type="checkbox" id="Ruta " value="checkbox">
Ja</p>
<table width="275" border="0">
<tr>
<td width="132"><input type="submit" name="Submit" value="Skicka"></td>
<td width="133"><div align="right">
<input type="reset" name="Submit2" value="Ta bort">
</div></td>
</tr>
</table>
</td>
<td width="383" valign="top"><div align="center">
<p>Regler som skall följas av medlemarna</p>
<p>
<textarea name="Regler" cols="50" rows="10" wrap="VIRTUAL" id="Regler">
</textarea>
</p>
</div></td>
</tr>
</table>
<p>  </p>
</div>
<input type=hidden name="redirect" value="sidan som besökaren skickas till">
<input type=hidden name="subject" value="Registrering">
<input type=hidden name="recipient" value="Mail">
</form>
<p align="left"> </p>
</div></td>
</tr>
</table>

</body>
</html>

Vad kan felet vara ?

Mvh Forcevision

Permalänk
Medlem

Du får gärna skriva vad som blir fel oxo men det jag kan se på rak arm så här så har du lagt in lite felaktiga parenteser i första if-stasen.

..||(form.efternamn.value.length==0)) <-- EN SKA BORT ||(form.email.value.length==0))<-- EN SKA BORT||(form.anvandarnamn.value.length==0))<-- EN SKA BORT||(form.losenord.value.length==0))<-- EN SKA BORT || ...

det är lite svårt att visa i din röriga kod men hoppas du förstår.

Ett tips;
när du lägger kod inom [ code]-taggen, glöm inte att avsluta med [/ code] också.

Permalänk

Okej !
Sorry jag skrev inom code men missade nog /code sorry.
Jo den säger inte till när man inte fylt i textfältet eller kryssat i rutan det är problemmet. Nu när jag tog bort ) så blir hela sidan bara vit och inget annat !
hmmmm....

Permalänk
Medlem

Det här verkar funka. En del glömda paranteser mm, och nytt sätt att fånga objekten på. Du har även skrivfel på id="Ruta " med mellanslaget.

Jag orkade inte ändra all 'eller' satser, men du fattar nog resten...

<html> <head> <title>Bli medlem</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript" language="JavaScript"> function checkForm() { var txtNamn = document.getElementById('namn').value; var txtEfterNamn = document.getElementById('efternamn').value; if (txtNamn.length == '' || txtEfterNamn.length == '') { alert("Du har glömt att fylla i någon av textfälten!"); return false; }else{ if (!document.getElementById('ruta').checked) { alert("Du måste acceptera reglerna!"); return false; }else{ return true; } } } </script> <link href="force2.css" rel="stylesheet" type="text/css"> </head> <body class="body" TOPMARGIN=0 LEFTMARGIN=0 MARGINHEIGHT=0 MARGINWIDTH=0"> <table width="800" border="0"> <tr> <td width="18" height="284" valign="top"><div align="center"><img src="bilder/logo.jpg" width="100" height="100"></div></td> <td width="772" valign="top"><div align="center"> <p><img src="bilder/force.gif" width="633" height="80"></p> <p>*Bli medlem*</p> <form name="form1" method="post" onSubmit="return checkForm()"> <div align="left"> <table width="688" border="0"> <tr> <td width="295" height="327"> <p>Namn:<br> <input type="text" id="namn"> <br> Efternamn:<br> <input name="efternamn" type="text" id="efternamn"> <br> E-mail:<br> <input name="email" type="text" id="Email"> <br> Användarnamn:<br> <input name="anvandarnamn" type="text" id="Anvandarnamn"> <br> Lösenord:<br> <input name="losenord" type="password" id="Lösenord"> <br> Bekräfta lösenord:<br> <input name="losenord2" type="password" id="Lösenord igen"> <br> Har du läst igenom reglerna?<br> <input name="ruta" type="checkbox" id="ruta" value="checkbox"> Ja</p> <table width="275" border="0"> <tr> <td width="132"><input type="submit" name="Submit" value="Skicka"></td> <td width="133"><div align="right"> <input type="reset" name="Submit2" value="Ta bort"> </div></td> </tr> </table> </td> <td width="383" valign="top"><div align="center"> <p>Regler som skall följas av medlemarna</p> <p> <textarea name="Regler" cols="50" rows="10" wrap="VIRTUAL" id="Regler"> </textarea> </p> </div></td> </tr> </table> <p> </p> </div> <input type=hidden name="redirect" value="sidan som besökaren skickas till"> <input type=hidden name="subject" value="Registrering"> <input type=hidden name="recipient" value="Mail"> </form> <p align="left"> </p> </div></td> </tr> </table> </body> </html>

Permalänk

Hmmm nope fungerar inte. Den skickar mig vidare bara när jag tyrcker på knappen skicka. Hmmmm

Permalänk
Medlem

Alltså det funkar hos mig.

Kan du lägga upp koden igen, så kan vi se om det finns några mer fel.

/BK

Permalänk

Jepp här kommer koden efter ändring då !

<html> <head> <title>Bli medlem</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript" language="JavaScript"> function checkForm() { var txtNamn = document.getElementById('namn').value; var txtEfterNamn = document.getElementById('efternamn').value; var txtEmail = document.getElementById('email').value; var txtAnvandarNamn = document.getElementById('anvandarnamn').value; var txtLosenOrd = document.getElementById('losenord').value; var txtLosenOrd2 = document.getElementById('email').value; if (txtNamn.length == '' || txtEfterNamn.length == '' || txtEmail.length == '' || txtAnvandarNamn.length == '' || txtLosenOrd.length == '' || txtLosenOrd2.length == '') { alert("Du har glömt att fylla i någon av textfälten!"); return false; }else{ if (!document.getElementById('ruta').checked) { alert("Du måste acceptera reglerna!"); return false; }else{ return true; } } } </script> <link href="force2.css" rel="stylesheet" type="text/css"> </head> <body class="body" TOPMARGIN=0 LEFTMARGIN=0 MARGINHEIGHT=0 MARGINWIDTH=0"> <table width="800" border="0"> <tr> <td width="18" height="284" valign="top"><div align="center"><img src="bilder/logo.jpg" width="100" height="100"></div></td> <td width="772" valign="top"><div align="center"> <p><img src="bilder/force.gif" width="633" height="80"></p> <p>*Bli medlem*</p> <form name="form1" class="form" method="post" action="FormMail.cgi" onSubmit="return checkForm()"> <div align="left"> <table width="688" border="0"> <tr> <td width="295" height="327"> <p><font size="2">Namn:</font><br> <input name="namn" class="form2" type="text" id="Namn"> <br> <font size="2">Efternamn:</font><br> <input name="efternamn" class="form2" type="text" id="Efternamn"> <br> <font size="2">E-mail:</font><br> <input name="email" class="form2" type="text" id="Email"> <br> <font size="2">Användarnamn:</font><br> <input name="anvandarnamn" class="form2" type="text" id="Anvandarnamn"> <br> <font size="2">Lösenord:</font><br> <input name="losenord" class="form2" type="password" id="Lösenord"> <br> <font size="2">Bekräfta lösenord:</font><br> <input name="losenord2" class="form2" type="password" id="Lösenord igen"> <br> <font size="2">Har du läst igenom reglerna?</font><br> <input name="ruta" type="checkbox" id="Ruta " value="checkbox"> <font size="2">Ja</font></p> <table width="275" border="0"> <tr> <td width="132"><input type="submit" name="Submit" value="Skicka"></td> <td width="133"><div align="right"> <input type="reset" name="Submit2" value="Ta bort"> </div></td> </tr> </table> </td> <td width="383" valign="top"><div align="center"> <p><font size="2">Regler som skall följas av medlemarna</font></p> <p> <textarea name="Regler" class="form3" cols="50" rows="10" wrap="VIRTUAL" id="Regler"> </textarea> </p> </div></td> </tr> </table> <p>  </p> </div> <input type=hidden name="redirect" value="http:/www./"> <input type=hidden name="subject" value="Registrering"> <input type=hidden name="recipient" value="reg@"> </form> <p align="left"> </p> </div></td> </tr> </table> </body> </html>

Permalänk
Medlem

en gång startade jag en tråd enbart för att få folk o lära sig använda code taggarna... men det verkade inte ge resultat... nu är det förvisso fixat men ändå...

Permalänk
Medlem

Din kod fungerar inte pga av ett gäng slarvfel du gjort.

1. I din javascript-kod så använder du getElementById-metoden för att komma åt elementen. Du har skrivit alla id:en i javascriptet med små bokstäver. Tittar du i din html-kod (input-taggarna) så har alla id:en där stor bokstav i början. Dock så har name-attributen bara små bokstäver. Du kommer undan med detta i IE men inte i Firefox. Med andra ord, ändra så att dina ID:en stämmer överens i javascript och HTML-kod.

2. ID:et på Lösenords-input bör inte innehålla ö. Ändra till o.

3. Din checkrutas ID innehåller ett mellanslag efter ID:et vilket ger den ID:et "Ruta " vilket kan ställa till det. Fixa det så borde allt fungera.

EDIT: Kan tillägga att du kan ta bort alla name-attribut i Input-taggarna eftersom du inte använder dessa när du använder getElementById-metoden.

Permalänk

Nu fungerar den i ie men inte i ff !

Koden ser ut som följande:

<html> <head> <title>Bli medlem</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript" language="JavaScript"> function checkForm() { var txtNamn = document.getElementById('namn').value; var txtEfterNamn = document.getElementById('efternamn').value; var txtEmail = document.getElementById('email').value; var txtAnvandarNamn = document.getElementById('anvandarnamn').value; var txtLosenOrd = document.getElementById('losenord').value; var txtLosenOrd = document.getElementById('losenord_igen').value; var txtLosenOrd2 = document.getElementById('email').value; if (txtnamn.length == '' || txtefternamn.length == '' || txtemail.length == '' || txtanvandarnamn.length == '' || txtlosenord.length == '' || txtlosenord_igen.length == '') { alert("Du har glömt att fylla i någon av textfälten!"); return false; }else{ if (!document.getElementById('ruta').checked) { alert("Du måste acceptera reglerna!"); return false; }else{ return true; } } } </script> <link href="force2.css" rel="stylesheet" type="text/css"> </head> <body class="body" TOPMARGIN=0 LEFTMARGIN=0 MARGINHEIGHT=0 MARGINWIDTH=0"> <table width="800" border="0"> <tr> <td width="18" height="284" valign="top"><div align="center"><img src="bilder/logo.jpg" width="100" height="100"></div></td> <td width="772" valign="top"><div align="center"> <p><img src="bilder/force.gif" width="633" height="80"></p> <p>*Bli medlem*</p> <form name="form1" class="form" method="post" action="cgi-sys/FormMail.cgi" onSubmit="return checkForm()"> <div align="left"> <table width="688" border="0"> <tr> <td width="295" height="327"> <p><font size="2">Namn:</font><br> <input name="namn" class="form2" type="text" id="namn"> <br> <font size="2">Efternamn:</font><br> <input name="efternamn" class="form2" type="text" id="efternamn"> <br> <font size="2">E-mail:</font><br> <input name="email" class="form2" type="text" id="email"> <br> <font size="2">Användarnamn:</font><br> <input name="anvandarnamn" class="form2" type="text" id="anvandarnamn"> <br> <font size="2">Lösenord:</font><br> <input name="losenord" class="form2" type="password" id="losenord"> <br> <font size="2">Bekräfta lösenord:</font><br> <input name="losenord2" class="form2" type="password" id="losenord_igen"> <br> <font size="2">Har du läst igenom reglerna?</font><br> <input name="ruta" type="checkbox" id="ruta" value="checkbox"> <font size="2">Ja</font></p> <table width="275" border="0"> <tr> <td width="132"><input type="submit" name="Submit" value="Skicka"></td> <td width="133"><div align="right"> <input type="reset" name="Submit2" value="Ta bort"> </div></td> </tr> </table> </td> <td width="383" valign="top"><div align="center"> <p><font size="2">Regler som skall följas av medlemarna</font></p> <p> <textarea name="Regler" class="form3" cols="50" rows="10" wrap="VIRTUAL" id="Regler"> </textarea> </p> </div></td> </tr> </table> <p>  </p> </div> <input type=hidden name="redirect" value="http://www."> <input type=hidden name="subject" value="Registrering"> <input type=hidden name="recipient" value=""> </form> <p align="left"> </p> </div></td> </tr> </table> </body> </html>

Permalänk
Medlem

Suck. Detta blir sista posten från mig.
I if-satsen så använder du ju inte rätt variabler. Du ska ju använda variablerna du deklarerat precis raderna ovan. Ett tips är att läsa på om javascript, finns hur många guider som helst.

Permalänk

Sorry nu vet jag vad du menade tack för hjälpen pucka !

Nu fungerar det allt utom rutan man skall bocka i i ff någon som ser felet där !

hmm....