webForumDet fria alternativet

Formulärvalidering Reguljära uttryck

JavaScriptur Javascript

5 svar · 317 visningar · startad av Anarcoma

Medlem sedan dec. 20037 inlägg
Frågan#1

jag har letat igenom en del gamla trådar i ämnet men lyckas kanske inte riktigt knyta ihop koden själv.

jag har ett fält. när jag trycker på submit så vill jag köra en funktion som kollar värdet i fältet. Ifall värdet är så som jag vill så vill jag "submitta" och gå vidare...är värdet felaktigt så vill jag få upp en ruta som förklarar det felaktiga samt att formuläret inte postas.

jag lyckas ju göra en funktion med reguljära uttryck som kollar värdet men jag får ändå inte ihop skiten. nåväl. här kommer koden...ni kanske kan ge mig nåt tips.

kod
--------------------------------

function checkField(textfld){
var pattern = /[0-5]/;
if (pattern.test(document.getElementById('texten').value)){
return true
} else {
alert("talet är för stort");
return false;
}
}

<form action="./7/index.asp" method="post">
<input type="text" id="texten" />
<input type="submit" onclick="checkField()"/>
</form>
----------------------------------

Medlem sedan sep. 20021 655 inlägg
#2
onclick="return checkField()"
Medlem sedan dec. 20037 inlägg
#3

funktionen funkar med ditt tillägg samt om jag tar bort min alert("talet är för stort")

jag vill dock ha en alert....och då funkar inte ditt förslag eftersom med alerten så postas formuläret oavsett det värde som testas.

what to do?

Medlem sedan sep. 20021 655 inlägg
#4

Jag får inga sådana fel när jag skriver:

<form action="./7/index.asp" method="post">
<input type="text" id="texten" />
<input type="submit" onclick="return checkField()"/>
</form>

Får du verkligen fel av det?
I så fall, kan du visa lite mer kod?

Medlem sedan dec. 20037 inlägg
#5

nu funkar det nästan...

här är hela min kod...

<script language="JavaScript">
function checkField(textfld){
	var pattern = /[0-5]/;
	if (pattern.test(document.getElementById('texten').value)){
		return true;
	} else {
		alert("över");
		document.getElementById('texten').value="";
		return false;
	}
}
</script>

</head>

<body>
<form action="./7/index.asp" method="post">
	<input type="text" id="texten" />
	<input type="submit" onclick="return checkField()"/>
</form>
</body>
</html>

Jag vill ju tillåta ett värde mellan 0 & 5...inte över det och itne under. skriver jag däremot 44 så godkänns detta också.

i övrigt så tackar jag för hjälpen.

/anarcoma

Medlem sedan sep. 20021 655 inlägg
#6

Då får du ändra i din regexp:

var pattern = /^[0-5]$/;

Nu är de enda godkända värdena 0,1,2,3,4 och 5.

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