Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-03-2009, 14:48   #1
Tzor
Member
 
Iscritto dal: May 2008
Messaggi: 74
[JAVASCRIPT] non riesco a far funzionare questo script

Ho iniziato a studiare Javascript da 5/6 giorni e sto facendo un esercizio.

In pratica dovrei creare degli oggetti che si occupano di controllare i campi di una semplice form.

* L'oggetto TextField si occupa di controllare se la dimensione del nome inserito in una label è corretta
* L'oggetto NumericField si occupa di controllare se le 2 età da inserire nella form sono entro un certo range
* L'oggetto LessThan si occupa di controllare che l'età attuale sia minore dell'età al momento del conseguimento della patente di guida

Ciascuno di questi oggetti ha un metodo isValid e un metodo explain che si occupano, rispettivamente, di effettuare il controllo vero e proprio e di generare un messaggio da inserire poi in un alert.


Questi oggetti vengono crati all'interno della funzione controlla che ho definito nella <head> del file .html (gli oggetti invece sono in un file .js)



Ecco il codice del file html:
Codice:
<html>

<head>
    <title>Esercizio j03</title>
    <script type="text/JavaScript" src="esj03.js"></script>
    <script type="text/JavaScript">
    function controlla() {
        var n = document.forms[0].elements[0].value;
        var e =document.forms[0].elements[1].value;
        var p = document.forms[0].elements[2].value;
        var msg = "";

        var control_n = new TextField(n, 1, 25);
        var control_e = new NumericField(e, p, 1, 99);
        var control_rel =  new LessThan(e, p);

            if (!control_n.flag_n()) {
                msg += control_n.msg_n();
                document.forms[0].elements[0].reset();
            }

            if (!control_e.flag_e()) {
                msg += control_e.msg_e();
                document.forms[0].elements[1].reset();
                document.forms[0].elements[2].reset();
            }

            if (!control_rel.flag_rel()) {
                msg += control_rel.msg_rel();
                document.forms[0].elements[1].reset();
                document.forms[0].elements[2].reset();
            }

        if (msg != "") {
            alert(msg);
        }
    }
    </script>
</head>

<body>
    <form method="post" action="#">
        <p>Nome:</p><input type="text" name="nome" size="30" /><br />
        <p>Et&agrave:</p><input type="text" name="eta" size="3" /><br />
        <p>Et&agrave al conseguimento della patente di guida:</p><input type="text" name="patente" size="3" /><br /><br />
        <input type="button" value="Invia" onclick="controlla();" />
        <input type="reset" value ="Reset" />
    </form>
</body>

</html>
E quello del file js:
Codice:
//classe TextField
function TextField(nome, minString, maxString) {
    this.nome = nome;
    this.minString = minString;
    this.maxString = maxString;
    this.flag_n = isValid_n;
    this.msg_n = explain_n;
}

function isValid_n() {
    if ((this.nome.length < this.minString) || (this.nome.length > this.maxString)) {
        return false;
    } else {
        return true;    
    }  
}

function explain_n() {
    if ((this.nome.length < this.minString) || (this.nome.length > this.maxString)) {
        return "\nAttenzione! Errore nel campo 'nome'";
    } else {
        return "";
    }
}




//classe NumericField
function NumericField(eta, patente, min_num, max_num) {
    this.eta = eta;
    this.patente = patente;
    this.min_num = min_num;
    this.max_num = max_num;
    this.flag_e = isValid_e;
    this.msg_e = explain_e;
}

function isValid_e() {
    if ((Object.isUndefined(this.eta) || Object.isUndefined(this.patente)) {
        return false;
    } else {
         if ((this.eta < this.min_num) || (this.eta > this.max_num)) || ((this.patente < this.patente) || (this.patente > this.patente))) {
            return false;
        } else {
             if (this.patente < 16) {
                return false;
            } else {
                return true;
            }
        }
    }
}

function explain_e() {
    if ((Object.isUndefined(this.eta) || Object.isUndefined(this.patente)) {
        return "\nAttenzione! Errore nei campi 'eta'";
    } else {
         if ((this.eta < this.min_num) || (this.eta > this.max_num)) || ((this.patente < this.patente) || (this.patente > this.patente))) {
            return "\nAttenzione! Errore nei campi 'eta'";
        } else {
             if (this.patente < 16) {
                return "\nAttenzione! Errore nei campi 'eta'";
            } else {
                return "";
            }
        }
    }
}




//classe LessThan
function LessThan(eta, patente) {
    this.eta = eta;
    this.patente = patente;
    this.flag_rel = isValid_rel;
    this.msg_rel = explain_rel;
}

function isValid_rel() {
    if ((Object.isUndefined(this.eta) || Object.isUndefined(this.patente)) {
        return false;
    } else {
        if (this.eta < this.patente) {
            return false;
        } else {
            return true;
        }
    }
}

function explain_rel() {
    if ((Object.isUndefined(this.eta) || Object.isUndefined(this.patente)) {
        return "\nAttenzione! L'eta' al conseguimento della patente è minore di quella attuale";
    } else {
        if (this.eta < this.patente) {
            return "\nAttenzione! L'eta' al conseguimento della patente è minore di quella attuale";
        } else {
            return "";
        }
    }
}
E' tutto ok fino a quando c'è la prima seguenza di if della funzione controlla. Gli oggetti vengono istanziati correttamente solo che sembra che non si riescano a richiamare i metodi isValid e explain all'interno della funzione calcola.
Altra cosa: non so se è corretto usare Object.Undefined per verificare che il campo della form sia inserito o no.

E' probabile che ci siano molti errori sintattici e non solo, insomma è probabile che abbia fatto molto cagate , ma d'altronde sono a digiuno di javascript

Ultima modifica di Tzor : 29-03-2009 alle 14:55.
Tzor è offline   Rispondi citando il messaggio o parte di esso
Old 29-03-2009, 16:25   #2
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
ora ho parecchio da fare quindi ti do un consiglio al volo per debuggare il codice: installati l'estensione firebug di firefox che ti fornisce spiegazioni degli errori javascript nella pagina così puoi essere sicuro che non ci sono errori di sintassi o roba del genere. Se ancora non ti funziona quando ho 10 min liberi do un'occhiata al codice
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 16:34   #3
Tzor
Member
 
Iscritto dal: May 2008
Messaggi: 74
Non sono ancora riuscito a trovare il perchè non funziona, sembra una missione impossibile
Tzor è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Il dodicesimo lancio del razzo spaziale ...
Blue Origin sta assemblando il secondo l...
Meta moltiplica gli investimenti in data...
Addio riflessi fastidiosi? Samsung prese...
PlayStation 5, doccia fredda da Sony: i ...
Super Meat Boy 3D: annunciata la data d'...
XT View Matrix, il mid-tower Phanteks ch...
David Sacks lascia il ruolo di 'Crypto C...
LG All Stars 2026: quando l'installatore...
Addio ad Anna's Archive? Ecco la mossa l...
Addio al Mac Pro, Apple mette fine a un ...
Panasonic a MCE 2026: la rivoluzione sil...
Netflix alza la posta: il piano Premium ...
Nimbus Innovation Awards – Cloud Edition...
Wikipedia vieta i contenuti generati dal...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v