Validering af form
Har virkeligt et problem.Har en formular, som jeg har valideret med javascript. Alt fungerer perfekt, når jeg kører den i et site, men når jeg lægger den ind i et andet site, Validerer den på første felt, sætter focus på feltet, når det ikke er udfyldt korrekt, hvorefter den indsætter i databasen (altså absolut ingenting). Har haft mange til at se på det, ingen kan finde fejlen. Har nogle nogen forslag til, hvad der kan være galt?
min validering ser sådan ud:
// JavaScript Document
function validering()
{
error = 0;
if((document.forms[0].fornavn.value=="") && (error==0))
{
alert("Du skal udfylde feltet med dit fornavn!");
document.forms[0].fornavn.focus();
error = 1;
}
if((document.forms[0].efternavn.value=="") && (error==0))
{
alert("Du skal udfylde feltet med dit efternavn!");
document.forms[0].efternavn.focus();
error = 1;
}
if((document.forms[0].adresse.value=="") && (error==0))
{
alert("Du skal udfylde adressefeltet!");
document.forms[0].adresse.focus();
error = 1;
}
if((document.forms[0].postnr.value=="") && (error==0))
{
alert("Du skal udfylde postnummerfeltet!");
document.forms[0].postnr.focus();
error = 1;
}
//NaN betyder Not a Number og er casesentetive
else if(isNaN(document.forms[0].postnr.value) &&(error==0))
{
alert("Du har ikke indtastet et nummer");
document.forms[0].postnr.focus();
error = 1;
}
else
{
if ((document.forms[0].postnr.value.length <3 || document.forms[0].postnr.value.length >4) &&(error==0))
{
alert("postnummeret skal være mellem 3 og 4 cifre");
document.forms[0].postnr.focus();
error = 1;
}
}
if((document.forms[0].by.value=="") && (error==0))
{
alert("Du skal udfylde feltet by!");
document.forms[0].by.focus();
error = 1;
}
//valuering af mailfeltet og hvordan mailadressen er opbygget
//først testes om feltet er tomt
if((document.forms[0].e-mail.value=="") && (error==0))
{
alert("Du skal udfylde felter e-mail!");
document.forms[0].e-mail.focus();
error = 1;
}
//hvis det ikke er tomt (er forskelligt fra tomt) testet om der er et snabel a, æ,ø å o.s.v.)
else if (document.forms[0].e-mail.value!="")
{
placering=0;
tekst=(document.forms[0].e-mail.value).toLowerCase();
placering=tekst.indexOf("@");
if(tekst =="")
{
alert ("Du skal indtaste en e-mail adresse");
error = 1;
}
else
{
tegn=tekst.indexOf(" ");
if(tegn!=-1)
{
alert ("Der må ikke være mellemrum i mail adressen");
document.forms[0].e-mail.focus();
error = 1;
}
else
{
if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1)
{
alert ("Adressen må ikke indeholde æ ø å Æ Ø Å , ;");
document.forms[0].e-mail.focus();
error = 1;
}
else
{
if (placering<1 || tekst.length<=(placering+1))
{
alert ("Mailadressen er forkert - forsøg igen");
document.forms[0].e-mail.focus();
error = 1;
}
}
}
}
}
if((document.forms[0].tlf.value=="") && (error==0))
{
alert("Du skal skrive dit telefonnummer!");
document.forms[0].tlf.focus();
error = 1;
}
if((document.forms[0].besked.value=="") && (error==0))
{
alert("Du skal skrive noget i tekstfeltet!");
document.forms[0].besked.focus();
error = 1;
}
//hvis alle felter er udfyldt error ==0 sendes (submittes)formularen
if(error == 0) document.forms[0].submit();
}
Formen er her:
?php
if(isset($_POST['send']))//dette har mette tilføjet, da der ikke er nogen action i formularen - inkl. de 2 tuborgklammer før og efter listen.
{
$fnavn=$_POST['fornavn'];
$enavn=$_POST['efternavn'];
$adresse=$_POST['adresse'];
$postnummer=$_POST['postnr'];
$by=$_POST['by'];
$tlf=$_POST['tlf'];
$mail=$_POST['e-mail'];
$besked =$_POST['besked'];
mysql_connect($host,$username,$password) or die ("kunne ikke forbinde til databasen");
mysql_select_db($database);
$sql = "INSERT INTO `kontakt` (`kontakt_ID`, `fornavn`, `efternavn`, `adresse`, `postnr`,`by`, `e-mail`, `tlf`, `besked`)
VALUES (null, '$fnavn', '$enavn', '$adresse', '$postnummer', '$by', '$mail', '$tlf','$besked')";
mysql_query($sql);
echo mysql_error();
}
?>
<form id="form1" name="form1" method="post" action="" onsubmit="validering();return false;">
<table width="450" border="0" cellspacing="3" cellpadding="0">
<tr>
<td valign="top"> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top">Fornavn:</td>
<td><label>
<input type="text" name="fornavn" id="fornavn" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">Efternavn:</td>
<td><label>
<input type="text" name="efternavn" id="efternavn" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">Adresse:</td>
<td><label>
<input type="text" name="adresse" id="adresse" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">Postnr.:</td>
<td><label>
<input type="text" name="postnr" id="postnr" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">By:</td>
<td><label>
<input type="text" name="by" id="by" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">e-mail:</td>
<td><label>
<input type="text" name="e-mail" id="e-mail" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">evt. tlf:</td>
<td><label>
<input type="text" name="tlf" id="tlf" />
</label></td>
<td> </td>
</tr>
<tr>
<td valign="top">Besked:</td>
<td><label>
<textarea name="besked" cols="30" rows="5" id="besked"></textarea>
</label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="send" id="send" value="Send" />
</label></td>
<td> </td>
</tr>
</table>
</form>
