webForumDet fria alternativet

miniräknare

.NET

5 svar · 751 visningar · startad av yador

Medlem sedan mars 2004455 inlägg
Frågan#1

Hejsan!
Jag har precis börjat läsa lär dig asp.net på 3 veckor och där var en av övningarna att man skulle göra en enkel miniräknare. Det har jag gjort, men kom på att om man råka mata in t ex en bokstav istället för en siffra så blev det ett fel. Hur kan man enkelt göra så att om det inte skulle t ex vara en siffra så skulle det automatiskt omvandlas till 0 t ex.

Här kommer koden för min simpla miniräknare:

<%@ Page Language="VB" %>
<script language="VB" runat="server">
    Sub rakna(ByVal Sender As Object, ByVal E As EventArgs)
        visa1.Text = CInt(tal1.Text) + CInt(tal2.Text)
        visa2.Text = CInt(tal1.Text) - CInt(tal2.Text)
        visa3.Text = CInt(tal1.Text) / CInt(tal2.Text)
        visa4.Text = CInt(tal1.Text) * CInt(tal2.Text)
    End Sub
</script>
<html>
<body>
<form runat="server">
tal 1 = <asp:TextBox runat="server" ID="tal1" />
tal 2 = <asp:TextBox runat="server" ID="tal2" />
<br />
tal 1 + tal 2 = <asp:Label runat="server" ID="visa1" /><br />
tal 1 - tal 2 = <asp:Label runat="server" ID="visa2" /><br />
tal 1 / tal 2 = <asp:Label runat="server" ID="visa3" /><br />
tal 1 * tal 2 = <asp:Label runat="server" ID="visa4" /><br />
<br />
<asp:Button runat="server" OnClick="rakna" Text="skicka" />
</form>
</body>
</html>

Tack på förhand!

Medlem sedan sep. 2005673 inlägg
#2

Använd en regularexpression så att de inte kan mata in fel överhuvudtaget:

<asp:RegularExpressionValidator ControlToValidate="tal1" Display="Dynamic" ValidationExpression="[0-9]" ErrorMessage="Endast siffror!"></asp:RegularExpressionValidator>

(med reservation för själva regexp-uttrycket som säkert är fel...)

Medlem sedan mars 2004455 inlägg
#3

Jag kan inte få det fungera. Kan du visa ett exempel hur det t ex skulle se ut med den koden jag visade längst upp på sidan.

Medlem sedan juli 20011 084 inlägg
#4

Man kan ju även använda CompareValidator, om det är bättre eller inte låter jag dock vara osagt :)

<asp:CompareValidator ControlToValidate="tal1" Display="Dynamic" Operator="DataTypeCheck" Type="Integer" Text="Endast siffror" runat="server" />

(inspiro verkar ha glömt ett litet runat="server" vilket antagligen gör att det inte fungerar för dig)

Medlem sedan juni 20019 519 inlägg
#5

hade nog använt mig av mozilla

annars ska regexp vara:
^\d+$
Om jag inte tänker fel..

Medlem sedan mars 2004455 inlägg
#6

ahh.. det fungerade bra när jag sätte ditt runat="server" men upptäckte att den inte tog t ex 10 som ett tal så jag tog mozillas förslag islället som fungerade utmärkt.

Tack svaren!

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)