webForumDet fria alternativet

Endast tal i textbox

.NET

4 svar · 267 visningar · startad av erka

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

Hej!

Finns det något annat sätt än att använda ett reg.exp och RegularExpressionValidator för att endast tillåta tal (integer) i en textbox ?

Medlem sedan juni 20011 732 inlägg
#2

Nej, det tror jag inte, då får du nog göra något eget. Men vad är det för fel på regexpvalidatorn, det passar väl perfekt till just detta ändamål???

Medlem sedan dec. 19996 522 inlägg
#3

Ja jag bara undra, vill ju lära mig så mycket som möjligt :)

Medlem sedan maj 20012 812 inlägg
#4

Jodå, det finns en variant!

Det är att man fångar event keyPress och kollar så den tangentman skrivit in är en siffra, så fall så låter man eventet gå igenom annars inte.

function CheckKeyCodeInt()
{
	var sChar
	var lMin
	var lMax
		
		
	sChar = "0";
	lMin = sChar.charCodeAt(0)
		
	sChar = "9";
	lMax = sChar.charCodeAt(0)
		
	if (event.keyCode < lMin || event.keyCode > lMax) 
		event.returnValue = 0;
					 	
	event.cancelBubble = true;
}

Sedan lägger du till följande attribut i textboxen:

onkeypress="javascript: CheckKeyCodeInt();"

Det är ingen .NET lösning, men enligt mig ett utmärkt sätt att kolla, du får dessutom response direkt,eftersom inget skrivs ut i boxen om du trycker på någon annan tangent.

- M

Medlem sedan juni 20011 732 inlägg
#5

Jodå, visst finns det alternativ, men då får man som sagt göra dem själv och ska du ha kontrollerna på klienten så är det javascript som gäller. Fördelen med expvalidatorn är ju att det fungerar även om klienten har javascript avslaget och att den alltid validerar på servern... också.

Vill du lära dig mer så gör du en egen asp.net-kontroll som kastar ut det här javascriptet. :) Att kunna göra egna kontroller är väldigt användbart...

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)