Newsgroup: it.comp.lang.javascript
Titolo: Menu select

Ciao a tutti,
mi sa che stò facendo un po' confusione con la sintassi dei menu
select...
Il resto del codice funziona, ma quando viene selezionata la voce
AGGIORNA o CANCELLA nel menu di selezione e clicca su invia il form,
non mi scatta la finestra di conferma come spererei...
:((
Grazie e ciao ALEN
---------------------------------
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<script type="text/javascript" language="Javascript">
<!--
function Iscrizione(obj)
{
	var errors = '';
	var checkEmail = obj.Email.value;
	var checkAction = obj.Action.value;
	var SelectAction = obj.Action;
	// E-mail
	if(checkEmail!=""){
		((checkEmail.indexOf('@') < 0) ||
((checkEmail.charAt(checkEmail.length-4) != '.') &&
(checkEmail.charAt(checkEmail.length-3) != '.')))?errors += '-
Indirizzo di posta elettronica errato\n':null;
	}else{
		errors += '- Il campo\"E-mail\" è obbligatorio\n';
	}
 
	// Menu a selezione
	(checkAction=="")?errors += '- Effettuate una scelta nel campo
\"Scegli Operazione\"\n':null;
	if(menu[SelectAction.selectedIndex].value=="D"||menu[SelectAction.selectedIndex].value=="S"){
 		if (confirm("La CANCELLAZIONE e SOSPENSIONE di un record sono
immediate. Non ci sarà possibilità di annullare l'operazione!")) {
  		}
	}
 
	if (errors){
		alert('Il form non può essee processato:\n'+errors);
		return false;
	}
}
//-->
</script>
</head>
<body>
<form name="form1" onSubmit="return Iscrizione(this)">
<tr>                                
<td valign="top" class="arial"> 										
<!-- Codice per l'aggiornamento rapido -->
<select name="Action">
	<option selected>Scegli Operazione</option>
	<option>---------------------</option>																  
	<option value="U">Aggiornare</option>
	<option value="D">Cancellare</option>
	<option value="S">Sospendere</option>
	<option value="V">Visionare</option>
</select>
E-mail
<input name="Email" type="TEXT" class="TxtAdvertiseUp" id="Email"
style="WIDTH:135px" size=15>
<input name="SubmitAction" type="submit" value="Esegui">
<td class="arial" valign="top" align="right">&nbsp;</td>
<td class="arial" valign="top" align="right">&nbsp;</td>
</tr>                              
</form>
</body>
</html>

 non mi scatta la finestra di conferma come spererei...
Un pò l'ho corretto, tieni presente 2 cose:
-    la scelta del nome del campo "Action" è infelice: una chiamata
this.action
      o this.Action nel form come stai facendo non si sà mai che non faccia
      casino, non mi stupirei nemmeno, viste le ultime novità... :"((
-    è bene che la tua funzione restituisca sempre o true o false, in questo
caso se
      si incavolasse avrebbe anche ragione :)
Ecco il tuo nuovo codice:
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="Javascript">
<!--
function Iscrizione(obj)
{
var errors = '';
var checkEmail = obj.Email.value;
var checkAction = obj.Action.value;
var SelectAction = obj.Action;
// E-mail
if(checkEmail!=""){
((checkEmail.indexOf('@') < 0) ||
((checkEmail.charAt(checkEmail.length-4) != '.') &&
(checkEmail.charAt(checkEmail.length-3) != '.')))?errors += '-Indirizzo di
posta elettronica errato\n':null;
}else{
errors += '- Il campo\"E-mail\" è obbligatorio\n';
}
// Menu a selezione
(checkAction=="")?errors += '- Effettuate una scelta nel campo\"Scegli
Operazione\"\n':null;
if(SelectAction.value=="D"||SelectAction.value=="S"){
  if (confirm("La CANCELLAZIONE e SOSPENSIONE di un record sono immediate.
Non ci sarà possibilità di annullare l'operazione!")){
   return true;
  }
}
if (errors){
alert('Il form non può essee processato:\n'+errors);
return false;
}
return true;


       si incavolasse avrebbe anche ragione :)
Grazie Gianni, faccio subito le correzioni che mi hai suggerito....
TNKS!

...
-----------------------------------------------------------------
Ciao Gianni,
ho rivisto un po' il codice ed ho introdotto una REG EXPRESSION per il
check del campo E-mail...
Tutto bene solo un problema, ossia:
se metti una e-mail giusta e scegli cancella ti esce giustamente la
finestra di conferma...ma se clicchi su no, il form esegue il POST!!
Invece dovrebbe annullare il tutto...
Penso sia un problema con quei return TRUE e FALSE ma sono in PANNE!!
PLease someone Help ME!
Che ho quasi finito....
:(((
-----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<script language="JavaScript1.2">
<!--  
function ControllaMail()
{
	var errors = '';
	var EmailAddr = document.form1.Email.value;
	var checkAction = document.form1.FaiQuesto.value;
	var BoolEmail = false
	var Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
 
	//Email check
	if(EmailAddr!=""){
		(Filtro.test(EmailAddr))?(BoolEmail=true):errors += '- Indirizzo di
posta elettronica errato\n';
	}else{
		errors += '- Compilate il campo \"E-mail\"\n';
	}
 
	if((checkAction=="D"||checkAction=="S")&&(BoolEmail==true)){
  		if (confirm("La CANCELLAZIONE e SOSPENSIONE di un record sono
immediate.\nNon ci sarà possibilità di annullare l'operazione!")){
   			return true;
  		}
	}
 
	// Menu a selezione
	(checkAction=="")?errors += '- Effettuate una scelta nel campo
\"Scegli Operazione\"\n':null;
 
	if(errors){
		alert('Il form non può essee processato:\n'+errors);
		return false;
	} 
}
-->
</script>
</head>
<body>
<form name="form1" id="form1" onSubmit="return ControllaMail()">
	<select name="FaiQuesto">
      <option selected>Scegli Operazione</option>
      <option>---------------------</option>
      <option value="U">Aggiornare</option>
      <option value="D">Cancellare</option>
      <option value="S">Sospendere</option>
      <option value="V">Visionare</option>
    </select> 
	<input name="Email" type="text" id="Email" size=18>
	<input type="submit" value="Submit">
</form>
</body>
</html>