Avatar billede s-s-l Nybegynder
06. februar 2006 - 20:54 Der er 14 kommentarer og
2 løsninger

input celle

hej

jeg har lavet en lommeregner i PHP. men nu har jeg et problem.

jeg bruger en <input> til at sende tallende til php'en. men hvordan kan jeg gøre sådan at man kun kan skrive tal i den og komma(.).

-ssl
Avatar billede whatever Nybegynder
06. februar 2006 - 21:21 #1
Prøv dette:

<script type="text/javascript">
<!--
    function checkForm(frm) {
        var reg_dec = /^([0-9,]+)$/;
        if (!reg_dec.test(frm.field.value)) {
            alert('Feltet er ikke udfyldt korrekt. Det må kun indeholdene tallene 0-9 og ,!');
        }
//-->
</script>

<form onsubmit="return checkForm(this.form)">
<input type="text" name="field" />
<input type="submit" />
</form>
Avatar billede whatever Nybegynder
06. februar 2006 - 21:22 #2
Der er vist indtil flere fejl, brug dette istedet:

<script type="text/javascript">
<!--
    function checkForm(frm) {
        var reg_dec = /^([0-9,]+)$/;
        if (!reg_dec.test(frm.field.value)) {
            alert('Feltet er ikke udfyldt korrekt. Det må kun indeholdene tallene 0-9 og ,!');
            return false;
        }
    }
//-->
</script>

<form onsubmit="return checkForm(this.form)">
<input type="text" name="field" />
<input type="submit" />
</form>
Avatar billede s-s-l Nybegynder
07. februar 2006 - 07:44 #3
det virker da ikke.
hvis jeg sætter det der ind, kan man da stadig skrive alle tegn.
Avatar billede whatever Nybegynder
07. februar 2006 - 09:34 #4
I stedet for "return checkForm(this.form)", skal der stå "return checkForm(this)".
Avatar billede ldanielsen Nybegynder
07. februar 2006 - 13:47 #5
Denne virker. Jeg har tilladt at man bruger enten det numeriske tastatur, eller de andre tal-taster.

<HTML>
<HEAD>
<SCRIPT LANGUAGE=javascript>
<!--
function testKey(i){
    return((i>=96 && i<=105) || (i==110) || (i>=48 && i<=57) || (i==188));
    }
//-->
</SCRIPT>

</HEAD>
<BODY>

<P><INPUT onkeydown="return testKey(event.keyCode);"></P>

</BODY>
</HTML>

PS: mangler den ikke at teste om der er mere end ét kome?
Avatar billede ldanielsen Nybegynder
07. februar 2006 - 13:47 #6
komma :o)
Avatar billede s-s-l Nybegynder
07. februar 2006 - 21:17 #7
hej

tak, men har du ikke en liste over nummeret på de forskellige taster, det er lidt upraktisk at slet(<-- og del) tasten og enter er deaktiveret
Avatar billede ldanielsen Nybegynder
08. februar 2006 - 08:59 #8
Næ, men hvis du tilføjer alert (i); til funktionen, får du koderne.

function testKey(i){
alert (i);
    return((i>=96 && i<=105) || (i==110) || (i>=48 && i<=57) || (i==188));
    }
Avatar billede ldanielsen Nybegynder
08. februar 2006 - 11:12 #9
OK, så tillader den delete og backspace, og den tillader kun et komma. function testKey(i, strIn){
    if ((i==188) || (i==110)) return(!/\,/g.test(strIn));
    return((i>=96 && i<=105) || (i>=48 && i<=57) || (i==46) || (i==8));
    }

Hvad med minus?
Avatar billede ldanielsen Nybegynder
08. februar 2006 - 11:16 #10
Hov, jeg ser lige at du vil bruge punktum som decimalseperator. Det er sikkert fordi det er et punktum der skal bruges når du udregner tingene, men jeg mener det er meget forkert, hvis den skal bruges i danmark.

Start med at erstatte alle , med . i det der kommer ind fra brugeren, lav så udregningerne, og erstat . med , inden du præsenterer resultatet for brugeren.
Avatar billede ldanielsen Nybegynder
08. februar 2006 - 11:17 #11
Du får lige hele smøren, for kaldet fra feltet skal også ændres:


<HTML>
<HEAD>

<SCRIPT LANGUAGE=javascript>
<!--
function testKey(i, strIn){
    if ((i==188) || (i==110)) return(!/\,/g.test(strIn));
    return((i>=96 && i<=105) || (i>=48 && i<=57) || (i==46) || (i==8));
    }
//-->
</SCRIPT>

</HEAD>
<BODY>

<P><INPUT onkeydown="return testKey(event.keyCode, this.value);"></P>

</BODY>
</HTML>
Avatar billede s-s-l Nybegynder
09. februar 2006 - 12:31 #12
mange tak for hjælpen du får pointen.
Avatar billede s-s-l Nybegynder
09. februar 2006 - 12:32 #13
e
Avatar billede ldanielsen Nybegynder
09. februar 2006 - 12:46 #14
Selv tak

Har du i øvrigt overvejet at lave lommeregneren i ren javascript? Som du laver det bliver tingene sendt til serveren, ikke sandt?

Det er en sjov og udfordrende opgave under alle omstændigheder, har selv leget lidt med at lave en lommeregner.
Avatar billede s-s-l Nybegynder
10. februar 2006 - 17:46 #15
det er entenlig ikkt en rigtigt lommeregner men et program det regner på trekanter.
fordi vi fik det til opgave i matematik i skole
og lavede den kun i PHP fordi jeg ikke kunne finde ud af at lave "if" og den slag i EXEL. så den skulle bare laves.


link til den
http://www.sslmod.1go.dk/trigonometri/
Avatar billede s-s-l Nybegynder
10. februar 2006 - 17:55 #16
men dit ellers gode javescript nåde ikke at blive brugt da den skulle afleveres klokken 12 den 7-2.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester