Una “questione” sui “questionari”

All'interno di una pagina HTML ci sono delle domande che prevedono una serie di risposte multiple con un numero massimo di risposte per ogni domanda.
Il problema è di verificare che, per ogni gruppo, non siano state selezionate più delle risposte previste. La prima soluzione è quella trattare le risposte come un array di checkbox e di verificare quante sono “flaggate” con un semplice loop in javascript (nei siti dedicati al JavaScript sono reperibili numerosi esempi).
Questa soluzione, in alcuni casi, rende molto più difficile gestire la generazione della pagina HTML e la memorizzazione dei risultati per i successivi trattamenti delle informazioni.
La funzione verifica tutte le checkbox presenti nel form e, tra quelle selezionate, tiene conto solo di quelle in cui la cui parte iniziale del nome coincide con il parametro passato in input alla funzione, restituendo solo il numero delle voci selezionate. Il risultato è utilizzato per effettuare due controlli: uno che verifica che sia stata fornita la risposta alla domanda e l'altro per verificare che non siano state selezionate più voci di quelle previste.
Trovate un’applicazione d’esempio su: www.itportal.it/ioProg70/Tips o sul supporto CD-Rom.
Tip fornito dal sig. F. Dall'Agnol

function ContaSelez (cllocheckbox) {
    //calcola il numero di chebox con un certo prefisso che sono selezionati
    //presuppone che il form si chiami fQuest e che i caratteri da confrontare siano solo i primi 6
    var numscelte = 0;
    for (x=0;x<window.document.forms('fQuest').elements.length;x++)
      { if (window.document.forms('fQuest').elements(x).name.substr(0,6) == cllocheckbox ) {
         if (window.document.forms('fQuest').elements(x).checked  ) {
           numscelte = numscelte + 1;
          }
     }
   }
    return numscelte;
  } 

Come aggiungere una voce ai preferiti

Chi utilizza Microsoft Internet Explorer può aggiungere un sito tra i "preferiti" semplicemente attraversando un collegamento costruito alla seguente maniera.
Tip fornito da Carlo Pelliccia

<a href="#" onclick="window.external.AddFavorite('http://www.indirizzo.it'

Oggetti in JavaScript

Non tutti lo sanno, ma è possibile creare in JavaScript degli oggetti personalizzati, da utilizzare poi all'interno del proprio codice:
Tip fornito da Carlo Pelliccia

function Persona(nome,cognome) 
{
  this.nome = nome;
  this.cognome = cognome;
}

A questo punto è possibile istanziare l'oggetto Persona:

var p = new Persona("Mario","Rossi");

I campi dell'oggetto possono essere sfruttati attraverso la classica notazione puntata:
alert(p.nome + " " + p.cognome);

Password casuale

Con JavaScript, soprattutto se utilizzato lato-server, può tornare utile la generazione di una password casuale. La seguente funzione realizza quanto occorre, prendendo in ingresso il numero di lettere che deve comporre la password e restituendo una stringa della lunghezza prestabilita, generata casualmente. All'interno della stringa caratteriValidi vanno specificati, uno dietro l'altro, tutti i caratteri che possono entrare a far parte della password
Tip fornito da Carlo Pelliccia

function randomPass(n) {
  caratteriValidi = "";
  caratteriValidi += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  caratteriValidi += "abcdefghijklmnopqrstuvwxyz";
  caratteriValidi += "0123456789";

  temp = "";
  for (i=0;i<n;i++) {
    casuale = Math.floor(Math.random() * caratteriValidi.length);
    temp += caratteriValidi.charAt(casuale);
  }

  return temp;
}