webForumDet fria alternativet

någotär fel i min kod

JavaScriptur Javascript

8 svar · 239 visningar · startad av nille99

Medlem sedan aug. 2002352 inlägg
Frågan#1

<head>
<title>Untitled</title>
</head>

<script language="JavaScript">
function validate(val,typ)
{
if (typ==0)
{reg = /\w|\s\w|\w\s|\s/
var msg="Du får endast ange tecken mellan A-Ö eller 0-9"}
else
{reg = /\D|\s\D|\D\s|\s/
var msg="Du får endast ange tecken mellan A-Ö"}

var reg_exp = new RegExp(reg)
var len=val.length;
var fel=false;

for (i=0;i<len;i++)
{
val_char=val.substring(i,i+1)
ch_reg = reg_exp.test(val_char)
if (ch_reg==false)
{fel=true}
}
if (fel==true)
{alert(msg)}
}
</SCRIPT>

<body>
<form name="hej">
<INPUT onclick="validate(document.form.input.value,1)">
</form>

</body>
</html>

Medlem sedan aug. 2002477 inlägg
#2

Du har glömt lite saker till formuläret:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
<title>Untitled</title> 
</head> 

<script language="JavaScript"> 
function validate(val,typ) 
{ 
if (typ==0) 
{reg = /\w|\s\w|\w\s|\s/ 
var msg="Du får endast ange tecken mellan A-Ö eller 0-9"} 
else 
{reg = /\D|\s\D|\D\s|\s/ 
var msg="Du får endast ange tecken mellan A-Ö"} 

var reg_exp = new RegExp(reg) 
var len=val.length; 
var fel=false; 

for (i=0;i<len;i++) 
{ 
val_char=val.substring(i,i+1) 
ch_reg = reg_exp.test(val_char) 
if (ch_reg==false) 
{fel=true} 
} 
if (fel==true) 
{alert(msg)} 
} 
</SCRIPT> 

<body> 
<form id="hej" name="hej" method="post" action="" onsubmit="validate(document.hej.text.value,1)"> 
    <INPUT name="text" type="text"  size="20" />
    <input type="submit" name="Submit" value="Submit" />
  </form> 

</body> 
</html>
Medlem sedan aug. 2002352 inlägg
#3

tack det fungerade
hur gör jag om jag vill mata in siffror och inte bokstäver ?

Medlem sedan aug. 2002477 inlägg
#4

La till alternativet 2 som kollar efter siffror.

<script language="JavaScript"> 
function validate(val,typ) 
{ 
if (typ==0) 
{reg = /\w|\s\w|\w\s|\s/ 
var msg="Du får endast ange tecken mellan A-Ö eller 0-9"} 
else if (typ==2) 
{reg = /\d+/ 
var msg="Du får endast ange siffror"} 
else 
{reg = /\D|\s\D|\D\s|\s/ 
var msg="Du får endast ange tecken mellan A-Ö"} 

var reg_exp = new RegExp(reg) 
var len=val.length; 
var fel=false; 

for (i=0;i<len;i++) 
{ 
val_char=val.substring(i,i+1) 
ch_reg = reg_exp.test(val_char) 
if (ch_reg==false) 
{fel=true} 
} 
if (fel==true) 
{alert(msg)} 
} 
</SCRIPT>
Medlem sedan aug. 2002352 inlägg
#5

jag får felmedelande men den går sen vidare till add sidan?
jag vill att den stannar kvar på samma sida

Medlem sedan aug. 2002477 inlägg
#6

Kan du förklara vad för felmeddelande du får?

Om du inte vill att sidan laddas om lägger du till ett return false:

onsubmit="validate(document.hej.text.value,2);return false"
Medlem sedan aug. 2002352 inlägg
#7

fungerar men nu så kommer man inte till add sidan om man har skrivit in siffror

Medlem sedan aug. 2002477 inlägg
#8

Vad pratar du om? Du ville ju inte att man skulle kunna gå vidare?

Medlem sedan aug. 2002352 inlägg
#9

jag vill gå vidare om jag har skrivit rätt och när jag har skrivit fel så ska jag stanna

129 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)