Newsgroup: it.comp.lang.javascript
Titolo: Funzione non considerata

Buonasera a tutto NG. Ho un problema da sottoporvi. lo script sottostante ha
la funzione di memorizzare i valori scritti in una textbox all'interno di un
menu a discesa e di cancellare il dato se l'utente lo richiede. Fino a
questo punto è tutto ok. Il problema nasce dal fatto che le due verifiche
che deve fare lo scrip prima di "momorizzare" il dato, non le esegue. La
verifica per impedire un doppio inserimento e per controllare che i numero
di dati non siano maggiori a quelli impostati sembrano essere totalemente
ignorati.
Vi chiedo cortesemente se poteste aiutarmi.
Distinti Saluti
PS: Qui sotto c'è il codice incriminato
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>Untitled</title>
<script>
function Aggiungiemail() {
 var reDigitCheck;
 var szAddemail;
 var szNewemails;
 var aNewemails=new Array();
 var nLen;
 var szPrefix;
 var HiddenNewemails="";
 var MAXemail=20
 szNewemails=HiddenNewemails;
 aNewemails=szNewemails.split(",");
 // verifica che il numero non sia già stato inserito
 nLen=aNewemails.length;
 for (i = 0; i < nLen; i++)
  if (szAddemail==aNewemails[i]){
   alert("L'indirizzo email che volete inserire è già presente in elenco");
   return;
  }
 }
 // verifica che le email aggiunte siano meno di MAXemail
  if (aNewemails.length > MAXemail ){
  alert("Attenzione - State inserendo un numero maggiore di email rispetto
al valore precedentemente impostato");
  return;
 }
 var ret = window.confirm("Confermi l'inserimento di questa email?");
 if (!ret)
  return;
 var oOpt = new Option(window.document.frmReg.email.value);
window.document.frmReg.lstemails.options[window.document.frmReg.lstemails.le
ngth]=oOpt;
 if (szNewemails.length==0)
  szNewemails= window.document.frmReg.email.value;
 else
  szNewemails=szNewemails + "," + window.document.frmReg.email.value;
 HiddenNewemails=szNewemails;
}
function Cancellaemail(){
 var szOldemails="";
 var szRestemails="";
 var aRestemails= new Array();
 var szDeletedemail;
 var nLen;
 var i;
 var HiddenNewemails="";
 if (window.document.frmReg.lstemails.selectedIndex<0){
  alert("Nessun indirizzo email da eliminare e' stata selezionata!");
  return;
 }
 var ret = window.confirm("E' sicuro di voler cancellare questo
indirizzo?");
 if (!ret)
  return;
szDeletedemail=window.document.frmReg.lstemails.options[window.document.frmR
eg.lstemails.selectedIndex].text;
window.document.frmReg.lstemails.options[
window.document.frmReg.lstemails.se
lectedIndex]=null;
 szOldemails=HiddenNewemails;
 aRestemails=szOldemails.split(",");
 nLen=aRestemails.length;
 for (i = 0; i < nLen; i++)
  if (szDeletedemail!=aRestemails[i]){
   if (szRestemails.length==0)
    szRestemails=aRestemails[i];
   else
    szRestemails=szRestemails + "," + aRestemails[i];
  }
 }
 HiddenNewemails= szRestemails;
 var s;
 var st="";
 var opts = window.document.frmReg.lstemails.options;
 opts.defaultSelected=false;
 for (s in opts) {
  st+= (s+": "+opts[s]+"\n");
  opts["length"]=null;
 }
 opts.selectedIndex=-1;
 if (szRestemails=="")
  return;
 aRestemails=szRestemails.split(",");
 nLen=aRestemails.length;
 for (i = 0; i < nLen; i++)
  var oOpt = new Option(aRestemails[i]);
  window.document.frmReg.lstemails.options[i]=oOpt;
 }
}
</SCRIPT>
</head>
<body bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0"
link="#003366" vlink="#003366" alink="#003366">
<form method="POST" action="fdg.aps" name="frmReg">
<table border="0" width="500" cellpadding="0" cellspacing="0">
<tr>
 <td>
  <table border="0" width="95%">
    <tr>
      <td bgcolor="#000066" width="125"><font face="Arial" size="2"
color="#ffffff">&nbsp;<b>Aggiungi<br>
        &nbsp;numero <br>
        &nbsp;Omnitel</b></font></td>
      <td bgcolor="#000066"><font face="Arial" size="2"  color="#ffffff">
        <input name="email" id="email" maxLength="30">
        <br>
        <a href="javascript:Aggiungiemail()"><img border="0" src="ok.gif"
alt="Click per aggiungere email all'elenco" WIDTH="78"
HEIGHT="20"></a>&nbsp;<br>
        </font> </td>
      <td>
      </td>
    </tr>
    <tr>
      <td bgcolor="#000066" width="125" align="left" valign="top"><font
color="#FFFFFF" face="Arial" size="2"><b>&nbsp;verifica
        <br>
        &nbsp;numeri</b> </font></td>
      <td bgcolor="#000066"><font face="Arial" size="2"  color="#ffffff">
        <select id="lstemails" name="lstemails" size="2">
          <option  value="empty">
        </select>
        <br>
        <a href="javascript:Cancellaemail()"><img border="0" src="ok.gif"
alt="Click per eliminare email dall'elenco email da aggiungere" width="78"
height="20"></a></font></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
 </td>
</tr>
</table>
  <p><input type="submit" value="Invia" name="B1"><input type="reset"
value="Reimposta" name="B2"></p>
</form>
</body>
</html>
</script>

 Vi chiedo cortesemente se poteste aiutarmi.
Stai utilizzando l'istruzione return esternamente alla funzione.......ciò
non è possibile, per fare questo devi creare una funzione che si attiva
sull'evento desiderato......
andreotta fabiano
 WebMªster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
    -new-
 
http://www.aticommerce.com
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com

Secondo me il problema risiede nel fatto che la variabile HiddenNewemails,
che tu inizializzi a stringa vuota, non viene mai riempita di valori. E'
chiaro che quando la assegni a  szNewemails e poi gli fai lo split, il
risultato è sempre una stringa vuota; di conseguenza, l'array aNewemails,
che tu usi per fare le verifiche, è privo di elementi ed ha lunghezza = 0.
Prova a caricare HiddenNewemails con i dati e vedrai che lo script funziona,
ciao.
P.S.: il debug mi ha segnalato parecchi errori nelle chiusure delle
parentesi graffe: verifica anche quelle.
-- 
Posted from [193.76.148.71] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG