Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Funzione che va su IE ma non su FF

    Salve ragazzi,
    Ho la seguente funzione che somma gli input (numerici) provenienti da vari campi textfield con name="Quantity" e blocca l'invio del form se non è stato inserito un numero minimo di prodotti nel carrello:
    codice:
    function checkItems(items,minimum) {
    var rv = false;
    var sum = parseInt(items);
    var rig = document.form1.Quantity;
    for(var i=0; i<rig.length; i++) {
    	var temp = parseInt(rig(i).value,10);
    	if (temp) {
    		sum += temp;
    		}
    	}
    		
    	if (sum >= parseInt(minimum)) {
    		rv = true;
    	}
    	if (!rv) alert("You selected " + sum + " items: the minimum is " + minimum + " items");
    return rv;
    }
    La funzione va èerfettamente su IE, mentre fu Firefox ottengo l'errore "rig is not a function" alla riga:
    codice:
    var temp = parseInt(rig(i).value,10);
    E non capisco perchè...
    Mi potreste aiutare, per favore?
    Grazie in anticipo!
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  2. #2
    codice:
    var temp = parseInt(rig[i].value,10);
    Parentesi quadre per l'indice di un array, please! :-)

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    < io
    Grazie, homezappa
    Mentre che ci sono: hai idea del perchè la funzione... funziona solo se i textfield "Quantity" sono più di 1? Se è uno, mi lancia il messaggio di errore dicendo che ho selezionato 0 item (anche se digito un valore numerico maggiore di 0)
    Grazie ancora, in ogni caso
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  4. #4
    Corretto:
    codice:
    function checkItems(items,minimum) {
    var rv = false;
    var sum = parseInt(items);
    var rig = document.form1.Quantity;
        if (rig.length) { // Se rig e' un array (ce n'e' piu' di uno)
            for(var i=0; i<rig.length; i++) {
                var temp = parseInt(rig[i].value,10);
                if (temp) {
                    sum += temp;
                }
            }
        }
        else {  // se non e' un array: ce n'e' uno solo!
                var temp = parseInt(rig.value,10);
                if (temp) {
                    sum += temp;
                }
        }		
    	if (sum >= parseInt(minimum)) {
    		rv = true;
    	}
    	if (!rv) 
            alert("You selected " + sum + " items: the minimum is " + minimum + " items");
        return rv;
    }
    Se c'&egrave; un solo campo, allora la variabile rig non &egrave; un array, da cui
    l'istruzione var temp = parseInt(rig[i].value,10); non &egrave; lecita.

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    Grande homezappa!!! Funziona tutto perfettamente (ma quant'è complicato JavaScript...)
    Grazie ancora!
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

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.