Controllo form

  • Creatore Discussione Creatore Discussione Bubbi
  • Data di inizio Data di inizio

Bubbi

Nuovo Utente
21 Set 2006
19
0
0
Ciao a tutti!
Per finire l'anno in bellezza sto diventando deficiente lottando con il controllo di un form :boxing:
La particolarità del form è che essendo implementato con php, può succedere che i campi di input a volte spariscano perchè sostituiti da valori già presenti sul database.
E così il controllo JS non funzia più.. :incazz2:

Questo è il codice:

<SCRIPT LANGUAGE="JavaScript" TYPE="TEXT/JAVASCRIPT">
<!--
function controllaform(iscrizioneuser){

if (document.iscrizioneuser.cognome_resp.value == '') {
alert('Inserisci Cognome!');
document.iscrizioneuser.cognome_resp.focus();
return false;
}
else if (document.iscrizioneuser.nome_resp.value == '') {
alert('Inserisci Nome!');
document.iscrizioneuser.nome_resp.focus();
return false;
}
else if (document.iscrizioneuser.indirizzo_resp.value == '') {
alert('Inserisci Indirizzo!');
document.iscrizioneuser.indirizzo_resp.focus();
return false;
}else{
return true;
}
}
-->
</SCRIPT>


<form name="iscrizioneuser" action="index.php?page=inserisci" method="POST" onsubmit="return controllaform();">
<table class="testo" cellpadding="0" cellspacing="0" border="0">
<tr> <td colspan="2"><font color="#83bef2"><h3>DATI DI ISCRIZIONE UTENTE<font class="testo_azzurro"> dati non visibili agli altri utenti</FONT></h3></font></td>
<td></td></tr>
<tr> <td>Cognome</td>
<td><INPUT TYPE="text" NAME="cognome_resp" SIZE="30" MAXLENGTH="255"></td>
<td></td></tr>
<tr> <td>Nome</td>
<td><INPUT TYPE="text" NAME="nome_resp" SIZE="30" MAXLENGTH="255"></td>
<td></td></tr>
<tr> <td>Indirizzo</td>
<td><INPUT TYPE="text" NAME="indirizzo_resp" SIZE="30" MAXLENGTH="255"></td>
<td></td></tr>
<tr> <td colspan="2" align="right"><input name="submit" type="submit" value="Spedisci">&nbsp;<INPUT TYPE="reset" VALUE="Reset"></td>
<td></td></tr>
</table>
</form>

Conoscete un sistema per far funzionare il JS?
 
Ciao Bubbi,

dunque i campi spariscono nel senso che al posto dell' input compare solo il testo??

Se è questo allora quando ciò avviene qualche campo 'document.iscrizioneuser.xxxxx.value' non esiste e quindi viene generato qualche errore
e lo script non viene eseguito. Quindi ti conviene inserire un controllo sull'esistenza del campo ad ogni if utilizzando l' && (AND), piu o meno in questo modo:

Codice:
<SCRIPT LANGUAGE="JavaScript" TYPE="TEXT/JAVASCRIPT">
<!--
function controllaform(iscrizioneuser){

if (document.getElementById("cognome_resp")!=null && document.iscrizioneuser.cognome_resp.value == '') {
alert('Inserisci Cognome!');
document.iscrizioneuser.cognome_resp.focus();
return false;
}
else if (document.getElementById("nome_resp")!=null && document.iscrizioneuser.nome_resp.value == '') {
alert('Inserisci Nome!');
document.iscrizioneuser.nome_resp.focus();
return false;
}
else if (document.getElementById("indirizzo_resp")!=null &&
document.iscrizioneuser.indirizzo_resp.value == '') {
alert('Inserisci Indirizzo!');
document.iscrizioneuser.indirizzo_resp.focus();
return false;
}else{
return true;
}
}
-->
</SCRIPT>
 
Grazie mille Lespaul!
Infatti ho fatto in modo che i valori che ho già sul database comparissero in campi di input come "value" non modificabili (readonly) e poi ho cambiato il controllo JS così:

if ((document.iscrizioneuser['cognome_resp']) && (document.iscrizioneuser.cognome_resp.value == '')) {
alert('Inserisci Cognome!');
document.iscrizioneuser.cognome_resp.focus();
return false;
}

:byebye:
 

Discussioni simili