Frågan 4 mars 2003 13:32 #1 Hejsan!
När mitt "form" submittas så skulle jag vilja göra en koll så att det verkligen finns en Giltig epost adress i input fältet "epost" som det ser ut nu så kollar scriptet bara att det finns något inskrivet i inputfälten.
Jag har även sökt i forumet efter ett liknande men den fick jag inte att funka med denna kod.
Så skulle någon kunna fixa in en sådan koll i detta som jag använder nu:
<form name="mail" method="post" action="/admin/kontakta_smartmail.asp" onsubmit="if(this.namn.value&&this.epost.value&&this.arende.value&&this.Meddelande.value){return true}else{alert('Var vänlig och fyll i alla fält...');return false}">
E ejick Medlem sedan mars 2001 895 inlägg Det går ju att göra enlikt likande:
<script language="JavaScript">
function send()
{
at1 = address.indexOf("@");
at2 = address.lastIndexOf("@");
dot = address.lastIndexOf(".");
if(at1 < 1 || at != at2 || dot < at1)
{
return confirm("Adressen" + address + " är inte rätt angiven email. Vill du skicka det i alla fall?");
return.true;
}
}
</script>
...
<form onSubmit="return send();">
<input type="text" name="address">
eller:
<script type="text/javascript">
<!--
function checkMail(form)
{
var regExp = /^[^@ ]+@[^@ ]+\.[a-zA-Z]+$/;
if(form.mailField.search(regExp) == -1)
{
alert("E-Mail ej korrekt");
return false;
}
return true;
}
//-->
</script>
<form onSubmit="return checkMail(this);">
P Peter S Medlem sedan dec. 2002 5 483 inlägg Eller skapa en funktion som validerar alla fält:
<head>
<script type="text/javascript">
<!--
function checkForm(o){
for(var i=0; i<o.elements.length; i++){
if(o.elements[i].value == ""){
alert("Fältet \"" + o.elements[i].name + "\" måste fyllas i");
return false;
} else {
if(o.elements[i].name == "epost"){
if(! /^(([\w])+([\.]){1})*([\w])+@([\w])+(([\.]{1})([A-Za-z]){2,4})+$/.test(o.elements[i].value)){
alert("E-postadressen är felaktig");
return false;
}
}
}
}
};
//-->
</script>
</head>
<form name="mail" method="post" action="/admin/kontakta_smartmail.asp" onsubmit="return checkForm(this)">
<input type="text" name="namn">
<input type="text" name="epost">
<input type="text" name="arende">
<input type="text" name="Meddelande">
<input type="submit">
</form>
:)
Fast nackdeln med att alerta själva fältets namn är att det inte blir så bra svenska..
"Fältet arende måste fyllas i"
P Peter S Medlem sedan dec. 2002 5 483 inlägg Vilken tur att designern har möjlighet att justera det då ;)
:)
Tackar för er hjälp, det funkar bra nu..
Om man nu inte stöder Netscape 4 kan man lägga till egna attribut:
<input type="text" name="namn" errMessage="Namn">
<input type="text" name="epost" errMessage="E-Post">
<input type="text" name="arende" errMessage="Ärende">
<input type="text" name="Meddelande" errMessage="Meddelande">
och sen modifiera raden med felmeddelande till:
alert("Fältet \"" + o.elements[i].getAttribute("errMessage") + "\" måste fyllas i");
:)
P Peter S Medlem sedan dec. 2002 5 483 inlägg
Om man nu inte stöder Netscape 4 kan man lägga till egna attribut:
Med andra ord; om man varken stöder Netscape 4 eller webbstandarder.
:)