Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802

    Calcolo numeri dopo determinato evento

    Ciao gente,
    sto creando un form e avrei bisogno di predisporre la compilazione di un campo in automatico. Mi spiego meglio, ho un campo "quantità", un'altro "prezzocad" ed infine il campo "prezzotot"; l'utente dovrebbe inserire i dati nei campi "quantità" e "prezzocad", e una volta fatto questo, JS mi dovrebbe compilare in automatico il campo "prezzotot" facendo il calcolo "prezzocad*quantità".

    Il problema è che non so quale evento inserire e come creare lo script. Chi mi sa dare una mano?

    Grazie
    www.beppegrillo.it
    Il blog di Beppe!!

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    codice:
    <form>
    Quantità : <input type="text" name="quant">
    Prezzo : <input type="text" name="price">
    <input type="button" value="calcola" onClick="calc()">
    Totale : <input type="text" name="tot" disabled>
    </form>
    
    <script language="JavaScript">
    function calc() {
     var q = document.forms[0].quant.value;
     var p = document.forms[0].price.value;
     var t = document.forms[0].tot.value;
     var tot = q * p;
     t = tot;
    }
    </script>
    metti un controllo dei campi perchè se io inserisco lettere e non numeri non mi viene fuori un bel risultato

    ciao
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    non dovrei inserire alcun bottone ma l'evento deve avvenire automaticamente una volta che i due campi sono stati compilati. Per il controllo dei dati posso farlo all'evento onChange dei due campi.

    Idee?

    Se vuoi posso darti l'indirizzo in modo che ti fai un'idea di cosa mi serve, se ce l'hai bisogno fammi sapere così ti inserisco la spiegazione per arrivare alla sezione interessata.

    Grazie
    www.beppegrillo.it
    Il blog di Beppe!!

  4. #4
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    codice:
    <form>
    Quantità : <input type="text" name="quant">
    Prezzo : <input type="text" name="price" onBlur="check()">
    <input type="button" value="calcola" onClick="calc()">
    Totale : <input type="text" name="tot" disabled>
    </form>
    
    <script language="JavaScript">
    function calc() {
     var q = document.forms[0].quant.value;
     var p = document.forms[0].price.value;
     var t = document.forms[0].tot.value;
     var tot = q * p;
     t = tot;
    }
    function check() {
     var a = document.forms[0].quant.value;
     var b = document.forms[0].price.value;
     if (a != "") && (b != "") {
      calc();
     }
     else {
      // puoi mettere un alert("CA**ONE!!");
     }
    }
    </script>
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  5. #5
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Mi da errore di sintassi:

    function check() {
    var a = document.forms[0].qta.value;
    var b = document.forms[0].prezzocad.value;
    if (a != "-") && (b != "-") { <--- ERRORE
    calc();
    }
    else if (a == "-"){
    alert ("Inserire la quantità in formato numerico");
    }
    else if (b == "-"){
    alert ("Inserire il prezzo unitario in formato numerico");
    }
    www.beppegrillo.it
    Il blog di Beppe!!

  6. #6
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    function check() {
    var a = document.forms[0].qta.value;
    var b = document.forms[0].prezzocad.value;
    if (a != "-" && b != "-") {
    calc();
    }
    else if (a == "-"){
    alert ("Inserire la quantità in formato numerico");
    }
    else if (b == "-"){
    alert ("Inserire il prezzo unitario in formato numerico");
    }
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  7. #7
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Ora non mi da nessun errore ma non mi restituisce l'alert quando il dato è sbagliato. Per comodità di controlli ho diviso lo script in due parti:

    function checkQta() {
    var a = document.forms[0].qta.value;
    if (a == "-"){
    alert ("Inserire la quantità in formato numerico");
    }
    }
    function checkPrezzocad() {
    var b = document.forms[0].prezzocad.value;
    if (b == "-"){
    alert ("Inserire il prezzo unitario in formato numerico");
    }
    }

    <input type="text" style="border:1px darkred solid; background:<%=bgcolor%>; color:black; font-size:12; FONT-FAMILY: verdana; text-align: center" name="qta" onBlur="checkQta()" value="-" size="3">

    <input type="text" style="border:1px darkred solid; background:<%=bgcolor%>; color:black; font-size:12; FONT-FAMILY: verdana; text-align: center" name="prezzocad" onBlur="checkPrezzocad()" value="-" size="8">
    www.beppegrillo.it
    Il blog di Beppe!!

  8. #8
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    sinceramente nn so ke fare a questo punto!

    io tornerei alla prima ipotesi, magari mettendo un link al posto del bottone se proprio nn lo vuoi!

    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  9. #9
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Ora quello è risolto, avevo ripetuto i nomi di alcuni campi (come al solito).

    Ora mi dice che document.forms[0].qtaNuovo.value è nullo o non è un oggetto.

    function checkQta() {
    var a = document.forms[0].qtaNuovo.value;
    if (a == "-"){
    alert ("Inserire la quantità in formato numerico");
    }


    <input type="text" name="qtaNuovo" onBlur="checkQta()" value="-" size="3">

    Credo che non riesca a trovare il campo, document.forms[0].qtaNuovo.value è giusto? Non c'è un altro modo per reperire il dato?
    www.beppegrillo.it
    Il blog di Beppe!!

  10. #10
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Ho corretto, era l'array del form[0] che era sbagliato. Piano piano riuscirò a fare quello che voglio, con il tuo aiuto. Pazienta un po.
    www.beppegrillo.it
    Il blog di Beppe!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.