Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: warning totale somma

  1. #1

    warning totale somma

    salve...avendo questa funzione di somma automatica all'inserimento da parte dell'utente:

    <script type="text/javascript">
    function dp(price)
    {
    string = "" + price;
    number = string.length - string.indexOf('.');
    if (string.indexOf('') == -1)
    return string + '';
    if (number == 1)
    return string + '';
    if (number == 2)
    return string + '';
    if (number > 3)
    return string.substring(string.length-number+3);
    return string;
    }
    function calculate()
    {
    document.calcform.total1.value = dp(eval(document.calcform.c1.value)+eval (document.calcform.b1.value)+eval(document.calcfor m.a1.value))

    }
    </script>

    posso aggiungere il fatto che se la somma nel campo total1 non sia uguale a 10 mi segnali errore?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Si tratta di JavaScript e non di Java.
    Sposto sul forum giusto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    perché complicarsi la vita?
    codice:
    function calculate() {
      var f = document.calcform;
      f.total1.value = toNumber(f.c1.value) + toNumber(f.b1.value) + toNumber(f.a1.value);
    }
    function toNumber(value) {
      if (isNaN(value))
        return 0;
      else
        return parseFloat(value);
    }
    se aggiungi un alert quando la somma non fa 10, ogni volta che l'utente scrive in un campo, gli appare l'alert, che è brutto

  5. #5
    scusa ma dove gli dico che deve essere 10?
    qui?: function toNumber(value) {

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    no
    codice:
    function calculate() {
      var f = document.calcform;
      f.total1.value = toNumber(f.c1.value) + toNumber(f.b1.value) + toNumber(f.a1.value);
      if (f.total1.value != 10)
        alert("errore");
    }
    ripeto, a un utente dà fastidio vedere troppi messaggi di errore

  7. #7
    quindi meglio non metterlo, ma non c'è un altro sistema? alert solo quando si compliano tutti e tre i campi?

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    function calculate() {
      var f = document.calcform;
      var c1 = toNumber(f.c1.value);
      var b1 = toNumber(f.b1.value);
      var a1 = toNumber(f.a1.value);
      if (!isNaN(a1) && !isNaN(b1) && !isNaN(c1)) {
        f.total1.value = a1 + b1 + c1;
        if (f.total1.value != 10)
         alert("errore");
      }
    }
    function toNumber(value) {
      if (isNaN(value))
        return NaN;
      else
        return parseFloat(value);
    questi controlli io li metto prima del submit, in modo che NON sia possibile spedire il form non valido

  9. #9
    GRAZIE....

  10. #10
    però se volessi farlo per tutte le righe? così mi da errore:

    function calculate() {
    var f = document.calcform;
    var c1 = toNumber(f.c1.value);
    var b1 = toNumber(f.b1.value);
    var a1 = toNumber(f.a1.value);
    if (!isNaN(a1) && !isNaN(b1) && !isNaN(c1)) {
    f.total1.value = a1 + b1 + c1;
    if (f.total1.value != 10)
    alert("errore");
    }
    }
    function toNumber(value) {
    if (isNaN(value))
    return NaN;
    else
    return parseFloat(value);
    }
    function calculate() {
    var f = document.calcform;
    var c2 = toNumber(f.c2.value);
    var b2 = toNumber(f.b2.value);
    var a2 = toNumber(f.a2.value);
    if (!isNaN(a2) && !isNaN(b2) && !isNaN(c2)) {
    f.total1.value = a2 + b2 + c2;
    if (f.total2.value != 10)
    alert("errore");
    }
    }
    function toNumber(value) {
    if (isNaN(value))
    return NaN;
    else
    return parseFloat(value);
    }

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.