chiedo scusa...c'è stato un problema nell'invio del post nella giornata di ieri
ciao a tutti,
sto utilizzando questo script all'interno di un form con altri campi che memorizzano altri valori, ho inserito un semplice controllo javascript per evitare che vengano inviati dei campi vuoti, ma si verifica una cosa strana ovvero se seleziono la prima voce del campo regione, la relativa prima voce del campo provincia e del campo comune, faccio per inviare il form alla pagina che andrà a processare l'inseriemento nel database, ricevo un alert che mi avvisa che non ho selezionato nessuna di queste voci.
Mentre se scelgo una regione, una provincia della regione selezionata e un comune della relativa provincia dalla seconda posizione in giù, il controllo funziona correttamente.
Questo è il codice javascript che controlla il form inviato:
codice:
function IsNumeric(sText) {
var ValidChars = "0123456789";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++) {
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1) {
IsNumber = false;
}
}
return IsNumber;
}
function ControllaForm()
{
var controllo=false;
var regioni=true;
var province=true;
var comuni=true;
var f_tipologia=true;
var f_tipologia3=true;
var f_disponibilita=true;
var f_prezzo=true;
var f_mq=true;
var f_camere=true;
var f_bagni=true;
var f_locali=true;
var f_prezzo=true;
var f_posto_auto=true;
var f_box_auto=true;
var f_balcone=true;
var f_terrazzo=true;
var f_giardino=true;
var f_piano=true;
var f_stato=true;
var f_ascensore=true;
var f_riscaldamento=true;
var f_portineria=true;
var f_vicinanza_automezzi=true;
var esposizioneselezionato=true;
var portiereselezionato=true;
var offertaselezionato=true;
var cantiereselezionato=true;
var giardinoselezionato=true;
var tipologia2selezionato=true;
// Controllo SELECT
if (document.info.regioni.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato la regione.\n");
}
if (document.info.province.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato la provincia.\n");
}
if (document.info.comuni.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il comune.\n");
}
if (document.info.f_tipologia.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il tipo di costruzione.\n");
}
if (document.info.f_tipologia3.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato la tipologia.\n");
}
if (document.info.f_disponibilita.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato la diponibilit.\n");
}
if (document.info.f_camere.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il numero delle camere.\n");
}
if (document.info.f_bagni.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il numero dei bagni.\n");
}
if (document.info.f_locali.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il numero delle camere totali.\n");
}
if (document.info.f_posto_auto.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il posto auto.\n");
}
if (document.info.f_box_auto.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il box auto.\n");
}
if (document.info.f_balcone.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il numero dei balconi.\n");
}
if (document.info.f_terrazzo.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il numero dei terrazzi.\n");
}
if (document.info.f_stato.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato lo stato.\n");
}
if (document.info.f_piano.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il piano.\n");
}
if (document.info.f_riscaldamento.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato il riscaldamento.\n");
}
if (document.info.f_vicinanza_automezzi.selectedIndex == 0)
{
controllo=true;
alert("Non hai specificato la vicinanza ai mezzi pubblici.\n");
}
// Fine Controllo SELECT
// Controllo TEXTfields
if (document.info.f_cod.value == "" )
{
controllo=true;
alert("Il campo codice riferimento del form vuoto.\n ");
}
if (document.info.f_prezzo.value == "" )
{
controllo=true;
alert("Il campo prezzo del form vuoto.\n ");
} else {
if (IsNumeric(document.info.f_prezzo.value) == false) {
controllo=true;
alert("Il campo prezzo deve contenere solo numeri.\n");
}
}
if (document.info.f_mq.value == "" )
{
controllo=true;
alert("Il campo MQ del form vuoto.\n ");
}
// Fine controlo TEXTfield
// Controllo RADIObutton
for (i=0;i<2;i++)
{
(document.info.f_tipologia2[i].checked)?tipologia2selezionato=false:null
}
if (tipologia2selezionato)
{
controllo=true;
alert("Non hai selezionato la tipologia.\n");
}
for (i=0;i<2;i++)
{
(document.info.f_giardino[i].checked)?giardinoselezionato=false:null
}
if (giardinoselezionato)
{
controllo=true;
alert("Non hai selezionato la presenza del giardino.\n");
}
for (i=0;i<3;i++)
{
(document.info.f_esposizione[i].checked)?esposizioneselezionato=false:null
}
if (esposizioneselezionato)
{
controllo=true;
alert("Non hai selezionato l\'\esposizione.\n");
}
for (i=0;i<2;i++)
{
(document.info.f_portiere[i].checked)?portiereselezionato=false:null
}
if (portiereselezionato)
{
controllo=true;
alert("Non hai selezionato la presenza della portineria.\n");
}
for (i=0;i<2;i++)
{
(document.info.f_offerta[i].checked)?offertaselezionato=false:null
}
if (offertaselezionato)
{
controllo=true;
alert("Non hai selezionato il campo in offerta.\n");
}
for (i=0;i<2;i++)
{
(document.info.f_cantiere[i].checked)?cantiereselezionato=false:null
}
if (cantiereselezionato)
{
controllo=true;
alert("Non hai selezionato il campo in cantiere.\n");
}
// Fine controllo RADIObutton
if (controllo){return false}else{return true}
}
// -->
mentre il form con solo (per una questione di praticità) i tre campi in questione è questo:
codice:
<form action="immobiliAdminMOD.asp" method="post" id="modulo" NAME="info" OnSubmit="return ControllaForm(this)">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td align="right" valign="top" class="contenuti-2riga">*regioni</td>
<td align="left" valign="top"><div id="div_regioni" class="contenitore">
<select size="25" name="regioni" id="regioni" onchange="regioni_onchange(this);">
<%=regioni(id_reg_sel)%>
</select>
</div></td>
</tr>
<tr>
<td align="right" valign="top" class="contenuti-2riga">*province</td>
<td align="left" valign="top"><div id="div_province" class="contenitore"><%=province(id_reg_sel,id_prov_sel)%></div></td>
</tr>
<tr>
<td align="right" valign="top" class="contenuti-2riga">*comuni</td>
<td align="left" valign="top"><div id="div_comuni" class="contenitore"><%=comuni(id_prov_sel,id_com_sel)%></div></td>
</tr>
</table>
<input name="modifica" type="submit" id="modifica" value="Modifica">
</form>
Vi ringrazio per l'aiuto 
elisa