Avatar billede The Real Yoda Juniormester
23. august 2002 - 19:49 Der er 14 kommentarer og
1 løsning

javascripts på formfelter

Jeg har 4 formfelter

navnene er

stkpris
antal
rabat
total

og er kommet til en hårdknude i javascript...
ville gerne lave så man kun kan indtaste hele tal i felterne og at de regner "TOTAL" ud automatisk..

er det psykosvært eller ?
hvis det er muligt skulle det være være umuligt at skrive i feltet "stkpris" og heller ikke i feltet "Total"

smider gerne flere point på bordet..
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 19:55 #1
hvordan skal den regne det ud ?

stkpris * antal - rabat = total

?
Avatar billede jakoba Nybegynder
23. august 2002 - 19:58 #2
hente værdi fra et felt:
    var stkpris = parseInt( "0"+document.formNavn.stkpris.value, 10 );

lægge værdi i et felt
    var total = stkpris * antal - rabat;
    document.formNavn.total.value = total
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 20:02 #3
Jeg vil foreslå:

<script type="text/javascript">
function udregn() {
    stkpris = document.form.stkpris.value;
    antal = document.form.antal.value;
    rabat = document.form.rabat.value;
   
    reg = '^[ 0-9]+$';
    if (stkpris.match(reg)) {
        total = stkpris * antal - rabat;
        document.form.total.value=total;
    } else {
        alert('kun hele tal');
    }
}
</script>


<form action="sub.php" name="form" OnSubmit="udregn(); return false;" method="post">

stkpris: <br>
<input type="text" name="stkpris">

<br><br>
antal: <br>
<input type="text" name="antal">

<br><br>
rabat: <br>
<input type="text" name="rabat">

<input type="submit" value="udregn">


<br><br>
total: <br>
<input type="text" name="total">
</form>
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 20:02 #4
hov, glemte lige at tjekke alle felter om de indeholder hele tal, to sek.
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 20:04 #5
ændre:
if (stkpris.match(reg)) {
til:

if (((stkpris.match(reg)) && antal.match(reg)) && rabat.match(reg)){
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:24 #6
jakoba..

fra før hvor jeg brugte

function lookUp ( postnrfelt )  {
          var pnr = parseInt( postnrfelt.options[postnrfelt.selectedIndex].value, 10 );
            document.form1.varepris.value = pris[pnr]
            document.form1.varetekst.value = tyxt[pnr]
     
};

jeg tror det er tekst og ikke tal den smider ned i feltet ? (varepris)
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:31 #7
jeg har nu flettet lidt.. men der kommer fejl

function udregn() {
    stkpris = parseInt( "0"+document.form1.varepris.value, 10 );
    antal = document.form1.antal.value;
    rabat = document.form1.rabat.value;
   
    reg = '^[ 0-9]+$';
    if (((stkpris.match(reg)) && antal.match(reg)) && rabat.match(reg)){
        total = varepris * antal - rabat;  <-----fejl her
        document.form1.total.value=total;
    } else {
        alert('kun hele tal');
    }
}

fejlen er object doesnt support til property or method
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:45 #8
ok.. er nu nået frem til at følge jacoba's eksempel...

function udregn() {
var varepris = parseInt( "0"+document.form1.varepris.value, 10 );
var antal = parseInt( "0"+document.form1.antal.value, 10 );
var rabat = parseInt( "0"+document.form1.rabat.value, 10 );
   
var total = varepris * antal - rabat;
    document.form1.total.value = total
}

så mangler jeg bare det der med at man ikke skal kunne rette i de to felter
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:46 #9
forresten.. jakoba.. smid lige et svar.. hva ?
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:47 #10
kan jeg ikke lige få atvide hvorddan jeg flytter fokus fra et felt til et andet...?
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 20:52 #11
Det er fordi du blander stkpris og varepris sammen.
stkpris = parseInt( "0"+document.form1.varepris.value, 10 );
skal være:
varepris = parseInt( "0"+document.form1.varepris.value, 10 );

og:
if (((stkpris.match(reg)) && antal.match(reg)) && rabat.match(reg)){
skal være:
if (((varepris.match(reg)) && antal.match(reg)) && rabat.match(reg)){


hvad mener du med at skifte focus?
..man skifter fokus i javascript sådan:
document.form1.feltnavn.focus();
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 20:53 #12
og hvis du vil gøre sådan at man ikke kan ændre i nogle felter, tilføjer du bare:
disabled
inde i input tagget...fx:

<input type="text" name="varepris" disabled>
Avatar billede The Real Yoda Juniormester
23. august 2002 - 20:59 #13
ja, men så bliver teksten i feltet så mærkelig...
men flyttede bare focus.. det virkede fint...
fik luret det.. så jeg siger tak for hjælpen...
Avatar billede gizmo-gizmo Nybegynder
23. august 2002 - 21:01 #14
okay, fint så.

Når man disabler et felt, vil det automatisk blive gråt. Det kan man ikke ændre på, desværre.
Avatar billede Slettet bruger
24. august 2002 - 10:43 #15
Alternativt kan man sætte det til readonly:

<input type="text" name="varepris" readonly>
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