webForumDet fria alternativet

Endast tal i textbox

.NETur .NET

4 svar · 267 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#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 ?

NETworkMedlem 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???

erkaMedlem sedan dec. 19996 522 inlägg
#3

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

GladhMedlem 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

NETworkMedlem 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...

253 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
129 ms — hämta forumlista (db)
121 ms — hämta statistik (db)
120 ms — hämta tråd, inlägg och bilagor (db)