webForumDet fria alternativet

Javascript kontroll av input.

8 svar · 323 visningar · startad av medialabs

medialabsMedlem sedan mars 20022 704 inlägg
#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}">
ejickMedlem sedan mars 20011 175 inlägg
#2

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">
PepeJeriaMedlem sedan feb. 2003779 inlägg
#3

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);">
Peter SMedlem sedan dec. 20025 484 inlägg
#4

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>

:)

PepeJeriaMedlem sedan feb. 2003779 inlägg
#5

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"

Peter SMedlem sedan dec. 20025 484 inlägg
#6

Vilken tur att designern har möjlighet att justera det då ;)

:)

Danne|MedialabsMedlem sedan juli 200277 inlägg
#7

Tackar för er hjälp, det funkar bra nu..

PepeJeriaMedlem sedan feb. 2003779 inlägg
#8

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");

:)

Peter SMedlem sedan dec. 20025 484 inlägg
#9

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.

:)

130 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
128 ms — hämta tråd, inlägg och bilagor (db)