Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    855

    aiuto valore campo form

    ciao

    vorrei attribuire ad un campo di un form, il valore della differenza di altri due campi ma non so come fare.

    mi potete aiutere?

    <form name="nomeform">
    <input type="text" name="c1" >
    <input type="text" name="c2" >
    <input type="text" name="c3" value="c1-c2" readonly>
    </form>

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    855
    ho provato cosi ma non mi funziona.

    <script language="JavaScript">
    <!--
    function diff() {
    var val1=document.AIR.1.value;
    var val2=document.AIR.2.value;
    var a=0

    a=val1-val2;
    document.AIR.3.value=a;

    }
    //-->
    </script>

    <form name="AIR">
    <input type="text" name="1" >
    <input type="text" name="2" >
    <input type="text" name="3" onBlur="javascript:diff();" readonly>
    </form>


    cosa posso fare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non so se una stringa formata da solo un numero sia un nome valido per un campo. Mettici una lettera davanti.

    Inoltre l'evento blur sul terzo campo probabilmente nonscatta mai: prova con l'evento onchange su uno (o ambedue) gli altri:
    codice:
    <script language="JavaScript">
    <!--
    function diff() {
    var val1 = parseFlaot(document.AIR.c1.value);
    var val2 = parseFlaot(document.AIR.c2.value);
    
    document.AIR.c3.value = val1 - val2;
    
    }
    //-->
    </script>
    <head>
    <body>
    <form name="AIR">
    <input type="text" name="c1" onchange="diff();">
    <input type="text" name="c2" onchange="diff();">
    <input type="text" name="c3" readonly>
    </form>
    Nota: se i numeri devono essere interi, usa parseInt() al posto di parseFloat();


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    855
    funge..

    ma se voglio fare i dei conti con i numeri con la "," invece del "." come posso fare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Devi prima trasformare la virgola inpunto, poi ritrasformare alla fine:

    codice:
    function diff(ff) {
    var val1 = parseFlaot(ff.c1.value.replace(/\,/,".");
    var val2 = parseFlaot(ff.c2.value.replace(/\,/,".");
    
    var dif = string(val1 - val2);
    dif = dif.replace(/\./,",")
    ff.c3.value = dif;
    }
    Da chiamare con:
    onchange="diff(this.form);"
    modo da passare il form alla funzione.


    Nota che il metodo replace() si puo` applicare solo aalle stringhe, per cui ho dovuto inserire una variabile stringa in piu`.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    855
    scusa ma non mi funge.
    ho provato cosi

    <script language="JavaScript">
    <!--
    function diff(ff) {
    var val1 = parseFloat(ff.c1.value.replace(/\,/,"."));
    var val2 = parseFloat(ff.c2.value.replace(/\,/,"."));

    var dif = string(val1 - val2);
    dif = dif.replace(/\./,",");
    ff.c3.value = dif;
    }
    //-->
    </script>


    <form name="AIR">
    <input type="text" name="c1" onchange="diff(this.form);">
    <input type="text" name="c2" onchange="diff(this.form);">
    <input type="text" name="c3" readonly>
    </form>

    e mi da errore sulla riga
    var dif = string(val1 - val2);

    cosa faccio?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prova cosi`:

    var val1 = parseFlaot(ff.c1.value.replace(/\,/,".");
    var val2 = parseFlaot(ff.c2.value.replace(/\,/,".");
    var difn = val1 - val2;
    var dif = string(difn);
    dif = dif.replace(/\./,",")
    ff.c3.value = dif;


    Se hai problemi inseisci degli alert, per verificare i passaggi intermedi:

    var difn = val1 - val2;
    alert("passo 1 - difn="+difn);
    var dif = string(difn);
    alert("passo 2 - dif = "+dif);

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.